为什么round()
比printf
字符串格式更好?
ruby-1.9.2-p0 > "%.0f" % 14.5
=> "14"
ruby-1.9.2-p0 > "%.0f" % 14.5000001
=> "15"
ruby-1.9.2-p0 > 14.5.round
=> 15
答案 0 :(得分:3)
仅仅因为你在学校里学到了.5
总是四舍五入并不意味着这是唯一正确的方法。有很多不同的rounding modes;你所看到的最有可能是“四舍五入”,它将.5
向均数整数舍入;这样做的好处就是不会产生像往常一样的整体向上偏差。
像Ruby Flt这样的高质量数学库通常提供了一种明确选择舍入模式的方法。
答案 1 :(得分:1)
“更好的工作”?不,如果你关心的是平均值,那就不行了。因此,朝着均匀的方向前进。