我想知道如何指示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
有什么建议吗?
提前致谢! :)
答案 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
如果你需要一个例子让我知道并且生病了你。)