2

是的,我知道这很难相信 - .NET 中的错误?但在命令行应用程序中运行此代码:

十进制 x;

x = decimal.Parse("3.E-2", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("5.72e9", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("3.E−2", NumberStyles.Float);
Console.WriteLine(x);

在最后一次解析期间我遇到了异常。说:

System.FormatException :输入字符串的格式不正确。

第一次和最后一次解析的值完全相同。在针对 .NET 3.5 和 4 编译的两台不同 x64 机器上进行了测试。

知道发生了什么吗?任何解决方法?

4

1 回答 1

24

第一个和第三个不完全一样。

在第三个你有一个“更长的” - 标志,结果它不知道如何处理它。因此,您需要检查并用标准减号替换它

于 2011-06-08T11:14:10.233 回答