我的程序中有以下代码:

Math.Sinh(myvalue).ToString()


上面的代码在Windows 8中返回Infinity,在Windows 10中返回

为什么返回两个不同的值?

最佳答案

Math.Sinh(myvalue)的返回值仍与double.PositiveInfinity相同。我假设包含特殊双精度值的字符串表示形式的资源文件在Windows 10中已更改,因此它们现在返回该无穷大符号

如果您想保留旧代码(实际上,依赖于特定于文化的字符串表示形式不是一个好主意),则可以考虑使用以下方法:

double sinh = Math.Sinh(myvalue);
string v = double.IsInfinity(myvalue) ? "Infinity" : myvalue.ToString();


或简单地检查ToString()的返回值是否为并相应地进行更改。

但是请记住,您可能还需要检查一些更特殊的double值。

09-25 17:22
查看更多