2

今天我注意到我使用十进制第一件事的所有地方都在网格中显示逗号而不是点第二个问题是当我编辑或插入带有点的数字时它忽略了点

就像我输入“2.5”一样,我得到了 25

这就像示例代码:

decimal a = Convert.ToDecimal("2.5");

a 的结果是 25。

这个问题发生在 iis 和我的本地机器上。

到处都是,怎么修?

4

2 回答 2

4

你现在的文化是什么?这应该做的工作:

decimal a = Convert.ToDecimal("2.5", new CultureInfo("en-US"));

此外,对于逗号显示:

string s = a.ToString(new CultureInfo("en-US"));
于 2012-09-13T08:33:26.537 回答
1

您可以通过更改默认文化或在转换调用(a)中强制使用特定文化来修复它。

我们奇妙的,但不知何故有点令人不安的欧洲表兄弟在过去的某个时候把小数点和逗号弄混了,所以三万五千七点二五写成:

35.007,25

因此,几乎可以肯定的是,您的文化设置正在丢弃千位分隔符(无论它们在哪里),因此“2.5”25。这意味着像两万五千 ( 2,500) 这样的数字几乎肯定会变成两个半。


(a):事实上,您可能不应该在转换调用中强制使用特定的文化,因为文化的全部意义在于适应人们的需求。欧洲人在没有给他们更多理由的情况下已经对美国的身体想得不够了:-) 你所看到的正是应该发生的事情。

如果您需要特定的文化,请以这种方式配置您的机器,并让您的代码使用默认值。

于 2012-09-13T08:41:30.900 回答