2
我有这样的代码在我的程序:Math.Sinh()在C#中返回不同的值
Math.Sinh(myvalue).ToString()
上面的代码在Windows 8返回Infinity
和Windows 10返回∞
。
为什么它返回两个不同的值?
我有这样的代码在我的程序:Math.Sinh()在C#中返回不同的值
Math.Sinh(myvalue).ToString()
上面的代码在Windows 8返回Infinity
和Windows 10返回∞
。
为什么它返回两个不同的值?
返回值Math.Sinh(myvalue)
仍然相同double.PositiveInfinity
。我假设包含特殊double值的字符串表示的资源文件已在Windows 10中更改,因此它们现在返回无穷大符号∞
。
如果你想保持你的代码旧的方式(这实际上是不依赖于特定文化的字符串表示是一个好主意),你可以考虑这样的事情:
double sinh = Math.Sinh(myvalue);
string v = double.IsInfinity(myvalue) ? "Infinity" : myvalue.ToString();
或只需检查如果ToString()
的返回值是∞
并相应地更改它。
但请记住,您可能需要检查一些更特殊的double值。
这些值是相同的'double.PositiveInfinity'。只有字符串表示更改为闪亮的'∞'。 –
他们应该是相同的,因为我用这个来加密数据,这导致我的密钥加密。我怎样才能做到这一点 ? –
无论视觉表现是什么,当结果是无穷时,加密数据都会非常困难! –