在Java公式中四舍五入到十并不';没有道理

在Java公式中四舍五入到十并不';没有道理,java,Java,我发现了这个公式,但我不知道它是如何工作的: (n + 5) / 10 * 10 这将一个数字四舍五入到十的倍数,但当我计算它时,它只是除以并乘以n+5。这实际上是如何工作的 示例(Java语言): 而据我所知,它实际上应该是29。您正在int上执行这些操作。这就是为什么每个操作结果也是一个int。发生的情况是: (24+5)=29 29/10=2(因为分数部分总是以整数形式删除) 2*10=20 此舍入方法仅适用于float和double。您可以尝试将int强制转换为double执行顺序为从

我发现了这个公式,但我不知道它是如何工作的:

(n + 5) / 10 * 10
这将一个数字四舍五入到十的倍数,但当我计算它时,它只是除以并乘以n+5。这实际上是如何工作的

示例(Java语言):


而据我所知,它实际上应该是29。

您正在
int
上执行这些操作。这就是为什么每个操作结果也是一个
int
。发生的情况是:

(24+5)=29

29/10=2
(因为分数部分总是以整数形式删除)

2*10=20


此舍入方法仅适用于
float
double
。您可以尝试将
int
强制转换为
double

执行顺序为从左到右。
29/10
在整数除法中给出了什么?如果使用双精度运算,结果将是29。
(24 + 5) / 10 * 10 = 20