У меня есть поле, которое должно состоять из валюты, которая, согласно моему региону, является Индонезией, которая является 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
но оно все еще дает мне $
Значок, как сменить команду $
programatically?
Когда имеешь дело с деньгами, не используйте тип «Single», даже если он кажется достаточно большим. Используйте десятичный тип. Всегда. –
@JoelCoehoorn Спасибо за исправление. – Sabilv