Java - 带小数的计算器

时间:2013-03-06 15:43:47

标签: java calculator decimal

我正在使用Java制作计算器。这一切都正常,我现在正在尝试实现小数。我正在使用双打来存储数字。我有一个解决方案,以下解决方案:

decPoints++; //decPoints holds the current number of numbers after the decimal point
currentVal = currentVal + (n/Math.pow(10, decPoints)); //n is the number that is to be added on

这有效,但会导致舍入错误,例如3.369将成为3.689999 ..

是否有解决此问题的简单方法或其他实现小数的方法?

提前致谢!

1 个答案:

答案 0 :(得分:-1)

没关系,我自己使用BigDecimals找到了解决方案。

decPoints++;
currentVal = currentVal + (n/Math.pow(10, decPoints));

BigDecimal bd = new BigDecimal(currentVal);
bd = bd.setScale(decPoints, BigDecimal.ROUND_HALF_UP);
currentVal = bd.doubleValue();