- 締切済み
double型の減算がうまくいかない
Java初心者です。 今、Javaの勉強中で、double型の計算を行っています。 double型同士の減算を行った結果、思っていた結果と違う値が帰ってきたので、原因、もしくは解決方法をお教え頂ければと思います。 ソースは以下 public static void main(String[] args) { //値A double longitudeA = -73.98289; //値B double longitudeB = -73.98315; BigDecimal aDecimal = new BigDecimal(String.valueOf(longitudeA)); BigDecimal bDecimal = new BigDecimal(String.valueOf(longitudeB)); //減算 BigDecimal decimal = aDecimal.subtract(bDecimal); //小数点以下第5位で四捨五入し、出力 System.out.print(decimal.setScale(5, RoundingMode.HALF_UP).doubleValue()); } 出力される値として、 0.00026 を想定していたのですが、実際に出力されたのは 2.6E-4 でした。 BigDecimalのオブジェクトをそのまま出力すると想定通りの結果が出力されます。 一回Stringに型変換を行った後、Double#parseDoubleを行ったりしてみたのですが、 どうも思った通りの出力がされません。 解決策をお教え頂ければと思います。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ete_01
- ベストアンサー率100% (2/2)
System.out.print(decimal.setScale(5, RoundingMode.HALF_UP).toString());
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
何が御希望なのかよくわからないのですが、 指数表記がいやなのなら toPlainString() を 使ったらいかがでしょうか? BigDecimal#toString() がいつ指数表記を使うかは リファレンスに詳細な説明があります。 http://docs.oracle.com/javase/jp/1.5.0/api/java/math/BigDecimal.html#toString()