当我对一个小的负数进行四舍五入时,它会四舍五入为 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;
这是 Demo
关于c# - 如何获得 - 0 表示四舍五入的小负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679066/