将字符串转换为十进制存在区域设置/区域性问题

本文关键字:设置 区域性 问题 区域 存在 字符串 转换 十进制 | 更新日期: 2023-09-27 17:49:25

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

" 1.00 "

根据访问者的语言环境,有时会转换为:

"1"或"1,00"

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

我正在使用:

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

如果我使用en-GB区域性,为什么它仍然转换为"1,000"十进制?我尝试了InvariantCulture,同样的事情发生了。为什么会发生这种情况?这不重要,因为它是在后端,对吧?

将字符串转换为十进制存在区域设置/区域性问题

转换正常-在内部,您在变量(price)中得到1.00的十进制表示。您看到的是"1,00"还是其他内容取决于您在输出变量的位置。

请查看您是如何打印它的,看看它应该如何显示。