c# - 为什么 decimal.Parse(10 10) 有效?

标签 c# parsing decimal

为什么 decimal.Parse(10 10) 有效?
在这种情况下我需要获得异常(exception)。
请给我一些建议。

decimal c;
try
{
   c = decimal.Parse("10 10");
   Console.Write(c);
   Console.ReadLine();
}
catch (Exception)
{
    throw;
}

最佳答案

当我运行它时会抛出异常 - 这让我怀疑它对文化敏感。

我的猜测是您所处的文化使用空格作为“千”分隔符。例如,如果我尝试解析有效​​的“10,10”,因为在我的默认区域性中逗号是千位分隔符。

要防止这种情况,请使用

decimal value = decimal.Parse(text, NumberStyles.None);

... 或 NumberStyles 的其他一些适当组合其中不包括 AllowThousands

关于c# - 为什么 decimal.Parse(10 10) 有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482152/

相关文章:

c# - 如何显示从 Tessnet (Tesseract) 获得的 tif 坐标图像

php - MySql小数类型显示问题

c - 从 .txt 文件获取整数并在 c 中对它们执行操作

c# - 决定哪些属性在运行时被序列化

c# - Silverlight DataGrid 验证显示所有对象的验证错误|属性

c# - 为什么我的菜单(无序列表)没有出现?包含 Menu.css

c++ - 代码片段在某些情况下有效,但不符合预期,为什么?

c++ - 简单的解析器和生成器

json - NSURLSession 使用 get 发送参数

c# - 使用 Decimal.TryParse 转换屏蔽货币字符串