Raghubir_Sarkar Ответов: 4

Как показать строку в формате индийских рупий?


Привет,

У меня есть элемент управления label в моей форме, который показывает сумму. В настоящее время он показывает как "22400.00", но я хочу показать как это "22.450.00". Сумма вычисляется во время выполнения, и это может быть что угодно, поэтому регулярное выражение не будет работать.
Необходимый формиат -
1.00
10.00
100.00
1,100.00
10,100.00
1,10,100.00
10,10,100.00
И так далее

4 Ответов

Рейтинг:
33

Prasad Avunoori

private void DisplayIndianCurrency()
   {    string fare = "1234567";
       decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
       CultureInfo hindi = new CultureInfo("hi-IN");
       string text = string.Format(hindi, "{0:c}", parsed);
       lbCurrency.Text = text;
   }


Рейтинг:
2

Nirav Prabtani

попробовать это.. :)

string Ammount = "22400.00";

double ammountDouble = Convert.ToDouble(Ammount);
CultureInfo cultureInfo = new CultureInfo("en-IN");
string ammountString = string.Format(cultureInfo, "{0:C}", ammountDouble);
string FinalAamount = ammountString.Substring(4);


Рейтинг:
2

DamithSL

ГЛ.

Dim yourNumber As Double = 1010100.34534
Label.Text = yourNumber.ToString("#,##0.00")

С#
double yourNumber = 1010100.34534;
Label.Text = yourNumber.ToString("#,##0.00");


даст вам 1 010 100,35


Рейтинг:
2

kgmmurugesh

Imports vb = Microsoft.VisualBasic


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Click

        Dim yourNumber As Double = 123456789.12
        Me.Text = Rupeeformat(yourNumber, "##,##,##,###.##")

    End Sub

    Public Function Rupeeformat(ByVal pAmount As Object, Optional ByVal Style As String = "") As String
        Dim lctr As Integer
        Dim lamount As String
        Dim ReturnValue As String
        Dim loci As Integer
        Dim lstyle1 As String
        Dim lstyle2 As String


        loci = CShort(InStr(Style, "."))
        If loci > 0 Then
            lstyle1 = vb.Left$(Style, loci - 1)
            lstyle2 = vb.Right$(Style, Len(Style) - loci)
        Else
            lstyle1 = Style
            lstyle2 = Nothing
        End If

        lamount = Trim$(CStr(pAmount))
        loci = CShort(InStr(CStr(lamount), "."))
        lamount = Trim$(CStr(vb.Left$(CStr(lamount), loci - 1)))

        lctr = CShort(Len(lamount))

        For Loc_I = CShort(Len(lstyle1)) To 1 Step -1
            If Mid$(Style, Loc_I, 1) = "#" Or Mid$(Style, Loc_I, 1) = "@" Then
                ReturnValue = Mid$(lamount, lctr, 1) + ReturnValue
                lctr = lctr - 1
            Else
                ReturnValue = Mid$(lstyle1, Loc_I, 1) + ReturnValue
            End If
            If lctr = 0 Then
                Exit For
            End If
        Next

        lamount = Trim$(CStr(pAmount))
        lamount = Trim$(CStr(vb.Right$(CStr(lamount), Len(Trim$(CStr(lamount))) - loci)))
        lctr = Len(lamount)
        If lctr > 0 Then
            ReturnValue = ReturnValue & "."
        End If


        For lctr = 1 To CShort(Len(lstyle2))
            If Mid$(Style, lctr, 1) = "#" Or Mid$(Style, lctr, 1) = "@" Then
                ReturnValue = ReturnValue + Mid$(lamount, lctr, 1)
            Else
                ReturnValue = ReturnValue + Mid$(lstyle2, lctr, 1)
            End If
            If lctr = 0 Then
                Exit For
            End If
        Next


        Rupeeformat = ReturnValue
    End Function

End Class