我读过很多关于stackoverflow的问题,但似乎没有一个对我有用。我使用math.round()来四舍五入。
这是代码:
class round{
public static void main(String args[]){
double a = 123.13698;
double roundOff = Math.round(a*100)/100;
System.out.println(roundOff);
}
}
我得到的输出是:123,但我希望它是123.14。我读到添加*100/100会有帮助,但正如你所看到的,我没有设法让它工作。
输入和输出都是double是绝对必要的。
如果您更改上面代码的第4行并发布它,将会有很大的帮助。
我知道这是一个2年前的问题,但每个人在某个时间点都面临着一个问题。我想分享一种不同的方法,通过使用BigDecimal类,可以给我们任何尺度的四舍五入值。在这里,如果我们使用DecimalFormat("0.00")或使用Math,我们可以避免获得最终值所需的额外步骤。整数(a * 100) / 100。
import java.math.BigDecimal;
public class RoundingNumbers {
public static void main(String args[]){
double number = 123.13698;
int decimalsToConsider = 2;
BigDecimal bigDecimal = new BigDecimal(number);
BigDecimal roundedWithScale = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("Rounded value with setting scale = "+roundedWithScale);
bigDecimal = new BigDecimal(number);
BigDecimal roundedValueWithDivideLogic = bigDecimal.divide(BigDecimal.ONE,decimalsToConsider,BigDecimal.ROUND_HALF_UP);
System.out.println("Rounded value with Dividing by one = "+roundedValueWithDivideLogic);
}
}
这个程序会给我们以下的输出
Rounded value with setting scale = 123.14
Rounded value with Dividing by one = 123.14