将货币符号转换为十进制

时间:2014-08-08 12:47:43

标签: c# .net winforms cultureinfo

我有一个文本框,显示货币值,如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

想要解决这个问题吗?

2 个答案:

答案 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 = ".",一切正常