所以这种奇怪的行为是在我们正在实施的单元测试中被发现的。
在 .NET Core 3.x 中,如果将接近 0 的负数四舍五入然后转换为字符串,则该字符串将显示“-0”而不是 0。
Framework 和 .NET Core 2.x 不会表现出这种行为。
double d = -.1;
Console.WriteLine(Math.Round(d,0));
Run Code Online (Sandbox Code Playgroud)
这是 Core 中的一个新错误,还是一些奇怪的有意更改?
这是 .NET Core 3.0 中的一项重大更改,以确保语言和 IEEE-754 合规性之间的一致性。
ToString()、ToString("G") 和 ToString("R") 现在将返回最短的往返字符串。
上面的重点是“往返”。在此更改之前,负零“-0”没有正确往返,这是通过修复双/单解析代码正确#20707和单/双的往返字符串格式不往返 -0的组合修复的#9883。
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |