我有不同的双精度值,例如2.71、0.51、4.02和1,52。 1,52应该取整为2,因为其> = 0.02。
我使用以下功能进行了尝试,但是对于1.52,我得到了错误的答案。我猜是因为Math.round。我现在没有进一步的步骤。
if (noOfLiters >= Math.round(noOfLiters) + limit) {
noOfLiters = noOfLiters * 2 + 1;
}
else {
noOfLiters = noOfLiters * 2;
}
return (int) noOfLiters;
答案 0 :(得分:0)
可以将上限设置为下一个更高的double或int:
//ceil to next higher double
double d1Ceiled = Math.ceil(d1);
//convert double to int
int d1CeiledInt = Double.valueOf(d1Ceiled).intValue();