c# - 如何获得 - 0 表示四舍五入的小负数?

标签 c# rounding

当我对一个小的负数进行四舍五入时,它会四舍五入为 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/

相关文章:

java - 圆形 float 到更接近(或最接近的)

Android - 四舍五入到小数点后两位

c#检查所有数据表值中的空值或空值

c# - 如何在列表框中放入\n(换行)?

python - 用 Python 比较贷款

swift - 使用 round() 在 Swift 中舍入

python - 接近 0.05 的舍入从结果中删除一位

c# - 应用程序正在构建但无法加载 - System.Web.Mvc 缺少文件或程序集?

c# - LINQ 按字母顺序排列,后跟空字符串

c# - .Show() 后模态弹出窗口扩展程序自动关闭