Math.round()不起作用

时间:2016-11-02 15:06:48

标签: java math

我正在使用Java编写计算器,但是"。"按钮功能不起作用。如果我删除Math.round()我有时会得到1.1999999而不是1.2。我该如何解决这个问题?我尝试在堆栈溢出时查找几个Math.round()解决方案,但没有一个能够正常工作。

x = Math.round(x + (y / (Math.pow(10, z)) * 1000) / (double) 1000);

上面的代码是我迄今为止所尝试过的。

2 个答案:

答案 0 :(得分:2)

你必须在解决之前对解决方案进行舍入。

double d = x + y / Math.pow(10, z);
double r = Math.round(d * 1e3) / 1e3; // round to 3 decimal places

答案 1 :(得分:0)

您可以尝试使用NumberFormat类格式化文本

public String formatNumber(int n){
    NumberFormat f= NumberFormat.getInstance();
    f.setMinimumFractionDigits(2);// minimum digits after comma
    f.setMaximumFractionDigits(2);//maximum digits after comma
    String formattedN = f.format(n);
    return formattedN;
}