RoundingMode允许程序员指定以什么方式舍入浮点数。这很好,但是有一件事我觉得很奇怪。也许我只是误解了学校的一些基本知识。
但是这种舍入模式被描述为我在学校教授的那种模式,“总是四舍五入到最接近的数字,当死在中心时,总是向上舍入。”,但为什么它绕-2.5到-3?
我总结道,它在绝对值方面都是四舍五入的,但对于我来说,-2肯定是从-2.5“上升”。
答案 0 :(得分:6)
RoundingMode.UP
是“远离零”的舍入模式。 RoundingMode.FLOOR
朝向负无穷大,CEILING
朝向正无穷大。当小数部分恰好为0.5时,HALF_UP
与UP
一致。
他们必须选择某些术语来表示“远离零”。
答案 1 :(得分:3)
RoundingMode.HALF_UP的JavaDocs概述了基本原理。
舍入模式向"最近邻居"除非两个邻居都是等距的,在这种情况下会向上舍入。如果丢弃的分数> = 0.5,则表现为RoundingMode.UP;否则,表现为RoundingMode.DOWN。请注意,这是学校通常教授的舍入模式。
关于Rounding方法的Wikipedia文章提出了不同的主张:
例如,根据此规则,值23.5将四舍五入为24,但-23.5将四舍五入为-23。
这是美国小学数学课程中普遍教授的两条规则之一。
虽然已经要求引用。