小编典典

将货币文本解析为十进制类型时出现问题

c#

我正在尝试将“ $
45.59”之类的字符串解析为十进制。由于某种原因,我收到输入格式不正确的例外。我并不在乎所有的本地化内容,因为这不会成为一个全球计划。这是我在做什么。你有什么问题吗?

NumberFormatInfo MyNFI = new NumberFormatInfo(); 
MyNFI.NegativeSign = "-"; 
MyNFI.NumberDecimalSeparator = "."; 
MyNFI.NumberGroupSeparator = ",";
MyNFI.CurrencySymbol = "$"; 
decimal d  = decimal.Parse("$45.00", MyNFI);    // throws exception here...

阅读 280

收藏
2020-05-19

共1个答案

小编典典

如何使用:

decimal d = decimal.Parse("$45.00", NumberStyles.Currency);

关于Decimal.Parse的MSDN文档指出:


s参数使用NumberStyles.Number样式进行解释。这意味着允许使用空格和千位分隔符,但不允许使用货币符号。要显式定义可以使用以下元素的元素(例如货币符号,千位分隔符和空白)存在于s中,请使用Decimal.Parse(String,NumberStyles,IFormatProvider)方法

2020-05-19