我正在尝试将“ $ 45.59”之类的字符串解析为十进制。由于某种原因,我收到输入格式不正确的例外。我并不在乎所有的本地化内容,因为这不会成为一个全球计划。这是我在做什么。你有什么问题吗?
NumberFormatInfo MyNFI = new NumberFormatInfo(); MyNFI.NegativeSign = "-"; MyNFI.NumberDecimalSeparator = "."; MyNFI.NumberGroupSeparator = ","; MyNFI.CurrencySymbol = "$"; decimal d = decimal.Parse("$45.00", MyNFI); // throws exception here...
如何使用:
decimal d = decimal.Parse("$45.00", NumberStyles.Currency);
关于Decimal.Parse的MSDN文档指出:
“ s参数使用NumberStyles.Number样式进行解释。这意味着允许使用空格和千位分隔符,但不允许使用货币符号。要显式定义可以使用以下元素的元素(例如货币符号,千位分隔符和空白)存在于s中,请使用Decimal.Parse(String,NumberStyles,IFormatProvider)方法