-0.1.ToString("0") 在 .NET Core 中为“-0”,在 .NET Framework 中为“0”

Nik*_*rev 14 .net c# tostring .net-core

(-0.1).ToString("0")
Run Code Online (Sandbox Code Playgroud)

当值为 double 或 float 时,在 .NET Core 中计算为“-0”,在 .NET Framework 中计算为“0”。另一方面,当值为十进制时:

(-0.1M).ToString("0")
Run Code Online (Sandbox Code Playgroud)

它在两个框架中都评估为“0”。

有没有人有关于这一变化的更多细节,哪一个是正确的?