RoundingMode允许程序员指定浮点数舍入的方式。尽管如此,我在其中发现了一件奇怪的事情,也许我在学校里误解了某些基本概念。
但是这个舍入模式被描述为我在学校里学到的那种,“始终四舍五入到最近的数字,当处于中心时,始终向上舍入。”,但为什么它会将-2.5舍入为-3呢?
我得出结论,它是按照绝对值向上舍入,但是对我来说,-2从-2.5“上升”显然不算。
RoundingMode允许程序员指定浮点数舍入的方式。尽管如此,我在其中发现了一件奇怪的事情,也许我在学校里误解了某些基本概念。
但是这个舍入模式被描述为我在学校里学到的那种,“始终四舍五入到最近的数字,当处于中心时,始终向上舍入。”,但为什么它会将-2.5舍入为-3呢?
我得出结论,它是按照绝对值向上舍入,但是对我来说,-2从-2.5“上升”显然不算。
RoundingMode.UP
是“远离零”的舍入模式。RoundingMode.FLOOR
是向负无穷方向,而CEILING
是向正无穷方向。当小数部分恰好为0.5时,HALF_UP
与UP
保持一致。
他们必须选择一些术语来表示“远离零”。
该理论在RoundingMode.HALF_UP的JavaDocs中进行了概述。
四舍五入模式,向“最近邻居”舍入,除非两个邻居等距,此时向上取整。如果被舍弃的小数大于等于0.5,则行为类似于RoundingMode.UP;否则,行为类似于RoundingMode.DOWN。请注意,这是通常在学校教授的舍入模式。
关于舍入方法的Wikipedia文章提出了不同的说法:
例如,按照这个规则,值23.5会被舍入为24,而-23.5会被舍入为-23。
这是在美国小学数学课程中通常教授的两条规则之一。
尽管已经请求引用。
RoundingMode.UP
的含义是“趋向正无穷大”,而这一点目前的回答并未涉及到。因此,需要进行澄清和解释。 - Louis Wasserman