我的意思是,有什么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,但它不存在。

10-06 05:11