1

我想知道如何指示 Java 始终舍入给定的数字。

例如:

1.08 rounds to 1
1.88 rounds to 1
1.999999999999 rounds to 1
0.0002 rounds to 0
123.77 rounds to 123

有什么建议么?

提前致谢!:)

4

3 回答 3

8

Math#floor就是:

返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值

于 2012-09-27T15:59:37.767 回答
3

我会用Math.floor(double)而不是Math.round(double)

或者,如果您想向 0 舍入,您可以直接施放

double d = 1.999999999999;
long l = (long) d;
于 2012-09-27T15:59:43.150 回答
0

Math.floor 函数可以解决问题。

采用双精度,返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。

如果您需要以不同的形式使用它,只需将其转换为(即 int)

如果您对它的工作原理感到好奇,请在此处查看规格:http: //docs.oracle.com/javase/6/docs/api/java/lang/Math.html

如果您需要一个示例,请告诉我,我会联系您 :)

于 2012-09-27T17:33:33.793 回答