我的程序中有以下代码:
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值。