我有一个应该由货币组成的字段,根据我的区域是印度尼西亚,它是IDR或Rp。 和我一起string.format
这样构建它:更改货币格式
Dim price As Single = Single.Parse(Convert.ToSingle(lblAmountGV.Text))
lblAmount.Text = String.Format("{0,C}", price)
,但它给了我一个美元符号。我更改代码:
lblAmount.Text = String.Format("Rp{0}", price)
,但我没有得到dot (.)
和Comma(,)
。所以我再次更改代码使用FormatCurrency
:
lblAmount.Text = FormatCurrency(lblAmountGV.Text, , , TriState.True, TriState.True)
,但它仍然给我一个美元符号,后来我发现如何更改CultureInfo
:
通过进口:
Imports System.Globalization
和我的代码:
Dim culture = CultureInfo.GetCultureInfo(" id-ID")
Dim format = DirectCast(culture.NumberFormat.Clone(), NumberFormatInfo)
format.CurrencySymbol = "Rp."
var number = Decimal.Parse(lblAmountGV.Text, NumberStyles.Currency, format);
lblAmount.Text = number
但它仍然给我一个$
登录,如何以编程方式更改$
?
当与金钱打交道,不使用“单一”类型,即使它看起来足够大。使用十进制类型。总是。 –
@JoelCoehoorn谢谢您的纠正。 – Sabilv