当我舍入一个小的负数时,它四舍五入为0.例如:decimal.Round(-0.001M, 2)返回0.
如果将其四舍五入为零,我该如何获得该符号.还有其他更好的方法,而不是检查n<0然后完成回合?
比较位也适用于十进制。感谢@JonSkeet,否则我永远不会知道这个技巧。
var d = decimal.Round(-0.001M, 2);
bool isNegativeZero = d == decimal.Zero && decimal.GetBits(d).Last() < 0;
Run Code Online (Sandbox Code Playgroud)
这是演示