Decimal.TryParse不解析我的十进制值

时间:2012-07-03 13:06:15

标签: c# decimal tryparse

当我尝试转换类似0.1的内容(来自文本框中的用户)时,我的值b始终为false。

bool b = Decimal.TryParse("0.1", out value);

怎么可以在这里工作?

3 个答案:

答案 0 :(得分:40)

指定解析的区域性。您当前的文化使用了一些不同的数字格式,可能是0,1

这将成功解析字符串:

bool b = Decimal.TryParse("0.1", NumberStyles.Any, CultureInfo.InvariantCulture, out value);

答案 1 :(得分:10)

在重载方法

中使用Culture

答案 2 :(得分:8)

参加派对太晚了,但是我打算建议将文化强制给美国,但是Invariant是一个更好的sln

decimal value;
bool b = Decimal.TryParse("0.1", NumberStyles.Any, new CultureInfo("en-US"), out value);