0

Javaを使って電卓を作っています。それはすべて機能していて、私は現在、小数を実装しようとしています。数値を格納するためにdoubleを使用しています。私は次の解決策を持っています:

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になります。

この問題の簡単な解決策や、小数を実装する別の方法はありますか?

前もって感謝します!

4

1 に答える 1

-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();
于 2013-03-06T15:55:12.387 に答える