总是四舍五入

时间:2012-09-27 15:57:30

标签: java math rounding

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

E.g:

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

有什么建议吗?

提前致谢! :)

3 个答案:

答案 0 :(得分:8)

这就是Math#floor does

  

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

答案 1 :(得分:3)

我会使用Math.floor(double)代替Math.round(double)

或者,如果你想向0

舍入,你可以进行投射
double d = 1.999999999999;
long l = (long) d;

答案 2 :(得分:0)

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

取一个double,返回小于或等于参数且等于数学整数的最大(最接近正无穷大)double值。

如果你需要一个不同的形式,只需将其投射(即int)

如果您对它的工作原理感到好奇,那么规格就在这里:http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html

如果你需要一个例子让我知道并且生病了你。)