我正在使用Java编写计算器,但是"。"按钮功能不起作用。如果我删除Math.round()
我有时会得到1.1999999而不是1.2。我该如何解决这个问题?我尝试在堆栈溢出时查找几个Math.round()
解决方案,但没有一个能够正常工作。
x = Math.round(x + (y / (Math.pow(10, z)) * 1000) / (double) 1000);
上面的代码是我迄今为止所尝试过的。
答案 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;
}