10

如何将十进制数四舍五入为整数。

3.50 => 4

4.5 => 5

3.4 => 3

你如何在 Java 中做到这一点?谢谢!

4

6 回答 6

26

具有标准的舍入功能? Math.round()

还有Math.floor()Math.ceil(),这取决于您的需要。

于 2012-07-09T14:07:39.507 回答
13

You can use

int i = Math.round(f); long l = Math.round(d);

where f and d are of type float and double, respectively.

于 2012-07-09T14:08:33.160 回答
9

如果你只使用正数,你也可以使用 int i = (int)(d + 0.5)。

编辑:如果你想将负数向上舍入(例如,向正无穷大,例如 -5.4 变为 -5),你也可以使用它。如果您想四舍五入到更高的量级(四舍五入-5.4 到-6),建议您使用另一个答案提出的其他函数。

于 2012-07-09T14:21:01.550 回答
2

Java provides a few functions in the Math class to do this. For your case, try Math.ceil(4.5) which will return 5.

于 2012-07-09T14:07:43.817 回答
2
new BigDecimal(3.4);
Integer result = BigDecimal.ROUND_HALF_UP;

或者

Int i = (int)(202.22d);
于 2012-07-09T15:39:48.523 回答
1

使用 Math.max 你可以这样做:

(int) Math.max(1, (long) Math.ceil((double) (34) / 25)

这会给你 2

于 2017-07-10T16:38:51.467 回答