如何在java中向零取整?
所以-1.9变成-1.0,-0.2变成0.0,3.4变成3.0,依此类推。
改变一些参数,Math.round()能做到这一点吗?
发布于 2011-12-05 23:11:29
我不相信标准库有这样的功能。
问题是,您要求的行为(从数学上讲)取决于数字是大于还是小于0(即,对于负值向上舍入,对于正值向下舍入)
可以使用以下方法:
public double myRound(double val) {
if (val < 0) {
return Math.ceil(val);
}
return Math.floor(val);
}发布于 2011-12-05 23:09:09
像这样转换为long:
float x= 1.9;
long y = (long)x;这会将正数和负数都舍入为零。
发布于 2011-12-05 23:09:10
使用RoundingMode.DOWN,它会导致接近零。
示例:
BigDecimal value = new BigDecimal("1.4");
value = value.setScale(0, RoundingMode.DOWN);
System.out.println(value.doubleValue());
BigDecimal value1 = new BigDecimal("-1.4");
value1 = value1.setScale(0, RoundingMode.DOWN);
System.out.println(value1.doubleValue());https://stackoverflow.com/questions/8387309
复制相似问题