四舍五入

时间:2019-06-13 13:57:36

标签: java

我有不同的双精度值,例如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;

1 个答案:

答案 0 :(得分:0)

可以将上限设置为下一个更高的double或int:

//ceil to next higher double
double d1Ceiled = Math.ceil(d1);

//convert double to int
int d1CeiledInt = Double.valueOf(d1Ceiled).intValue();