我的意思是,有什么RoundingMode常数准确地描述了Math.round(arg)
的功能吗?我了解Math.round不会正式使用任何RoundingMode类/对象。
到目前为止,我还没有类比。有一个部分类比-在类似1.5,-1、5等的情况下,关系被打破,就像RoundingMode.CEILING
中一样(“朝正无穷大”)。但是RoundingMode.CEILING
类比不适用于其他参数(1.7,-1.1),因此不能100%类比。
所以我发现在所有RoundingMode常量中绝对没有100%的类比,这让我觉得我在某个地方没有专心。 RoundingMode类中的常量列表应具有所有广泛使用的舍入模式的常量,对吗?
那么,为什么在RoundingMode类中没有100%的类比?
这是RoundingMode类常量及其行为的comparison table。
附言Math.floor(arg)
方法的行为与RoundingMode.FLOOR
完全相同,Math.ceil(arg)
的行为与RoundingMode.CEILING
完全相同。
最佳答案
Math.round()
的作用类似于RoundingMode.HALF_UP
的正数,就像RoundingMode.HALF_DOWN
的负数。
原因是Math.round()
将联系朝正无穷大舍入,并且没有任何模式可以做到这一点。
为了明确起见,这两种模式都将与round()
完全一样工作,除了关系(例如,像xxx.5
这样的数字),例如5.5和-5.5,对于HALF_DOWN
会四舍五入到5和-5,对于HALF_UP
会四舍五入到6和-6,但是-5和6为round()
。
您正在寻找的是RoundingMode.HALF_CEILING
,但它不存在。