9

RoundingMode 允许程序员指定以何种方式舍入浮点数。这很棒,但我觉得有一点很奇怪。也许我只是误解了学校里一些基本的东西。

但是这种取整模式被描述为我在学校教的那种,“总是四舍五入到最接近的数字,当死在中心时,总是四舍五入。”但是为什么它会将-2.5四舍五入到-3?

我得出的结论是,它以绝对值四舍五入,但对我来说,-2 肯定是从 -2.5 “向上”。

4

2 回答 2

6

RoundingMode.UP是“远离零”的舍入模式。 RoundingMode.FLOOR向负无穷大,CEILING向正无穷大。 HALF_UPUP小数部分正好为 0.5 时一致。

他们必须选择一些术语来表示“远离零”。

于 2012-12-21T19:16:21.897 回答
3

RoundingMode.HALF_UP的 JavaDocs 中概述了基本原理。

舍入模式向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下向上舍入。如果丢弃的分数 >= 0.5,则行为与 RoundingMode.UP 相同;否则,行为与 RoundingMode.DOWN 相同。请注意,这是学校通常教授的舍入模式。

关于舍入方法的维基百科文章提出了不同的主张:

例如,根据此规则,值 23.5 会四舍五入为 24,但 -23.5 会四舍五入为 -23。

这是美国小学数学课上普遍教授的两条规则之一。

尽管已要求引用。

于 2012-12-21T19:09:29.437 回答