c#Double.TryParse(“1,1,1”,out value)返回true,值= 111呵呵?

时间:2011-03-31 18:51:42

标签: c# .net

在临时窗口中

?Double.Parse("4,67,34,34,46,34,235,346")
46734344634235344.0

如何停止此操作并仅允许4.56 4,455,455.33,1.23E5成功?

2 个答案:

答案 0 :(得分:6)

有一个重载Double.Parse(String, NumberStyles),允许您指定允许的内容。有关详细信息,请参阅this msdn page

答案 1 :(得分:0)

TryParse在输入字符串中的任何位置接受特定于文化的组分隔符。接受的格式是

[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]

其中,是特定于文化的组分隔符和。是小数点。

使用我当前的语言环境设置以下

double d;
Console.WriteLine(double.TryParse("1.1.1,2", out d)); // one decimal point, two group separators
Console.WriteLine(d);

评估为真,111,2

double d;
Console.WriteLine(double.TryParse("1.1.1,2,2", out d)); // two decimal points
Console.WriteLine(d);

评估为false和0。