我有一个文本框,显示货币值,如250.00 €,$1,000.00 ,£100.00
等
我根据货币符号创建了文化。
var culture = new CultureInfo(symbol); //symbol may be en-US,en-GB etc..
culture.NumberFormat.CurrencyDecimalSeparator = ".";
现在做类似下面的事情
decimal amount;
decimal.TryParse(txtAmount.Text, NumberStyles.Any, _culture, out rate);
工作正常。
当格式化货币时金额大于1000时,我遇到了瑞典克朗的问题。
即。
当输入100时,它变为100.00 kr并且工作正常
当输入1000时,它是1.000.00 kr并且它失败并且金额变为0
想要解决这个问题吗?
答案 0 :(得分:1)
您可以像这样设置文化: -
CultureInfo sw= new CultureInfo("sv-SE");
sw = (CultureInfo)sw.Clone();
sw.NumberFormat.CurrencyPositivePattern = 3;
sw.NumberFormat.CurrencyNegativePattern = 3;
然后
var rate = 123.45M;
txtAmount.Text = rate.ToString("C", sw);
输出
123,45 kr
答案 1 :(得分:0)
一切都是为了创造文化。
DanielGimenez指出,我删除了NumberFormat.CurrencyDecimalSeparator = "."
,一切正常