将字符串转换为十进制的Locale / Culture问题

时间:2015-05-17 18:34:06

标签: c#

我有一个通过参数收到的简单字符串:

“1.00”

根据访问者的区域设置,它有时会转换为:

“1”或“1,00”

第二个是问题,我总是需要它是一个句点(点)。 $,£

我正在使用:

decimal price = Convert.ToDecimal(stringPrice, new CultureInfo("en-GB"));

如果我使用en-GB文化,为什么它仍然会转换为“1,00”小数?我尝试了InvariantCulture,同样的事情发生了。为什么会这样?它应该没关系,因为它在后端,对吧?

1 个答案:

答案 0 :(得分:2)

转换正常 - 在内部,您的变量(价格)得到1.00的十进制表示。无论你看到" 1,00"或其他什么取决于你输出变量的位置。请查看您的打印方式,了解它的显示方式。