小数.解析方法
本文关键字:方法 小数 | 更新日期: 2023-09-27 17:51:10
我刚刚在我的c#代码中发现了一个非常奇怪的Bug,
所以有一个next:
当我尝试将对象{string}转换为十进制时,像这样:
item.ValiaFundo = row.IsNull("PL_FUNDO") ? 0 : decimal.Parse(row["PL_FUNDO"].ToString());
的值row = "2488.1987",它返回给我2488.1987,但对于一些用户返回值是24881987。
我修复了它改变对象的类型我的数据库返回对象{decimal},像这样:
item.ValiaFundo = row.IsNull("PL_FUNDO") ? 0 : (decimal)row["PL_FUNDO"];
对任何用户都可以很好地强制转换值,我只是想了解为什么会出现这个错误?是什么引起的?有人有什么想法吗?
注::服务器和用户的区域设置在这两种情况下是相同的。
但是,似乎来自服务器的数据已经是十进制类型了。
这是一个不好的做法去Decimal——> string——> Decimal。正如Jon Skeet指出的(他的答案消失了),在某些文化中逗号是小数点。因此,在执行ToString()时,请注意所使用的区域性