JAVA開発メモ
BigDecimal のバックアップ(No.2)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]


java.math.BigDecimal

floatやdoubleのように丸め誤差が生じる演算が許されない場合、BigDecimalを使用すれば誤差なく処理が行いえます。ただし、処理は非常に遅くなります。

加算処理

 BigDecimal val = new BigDecimal("0.10"); // 誤差がでないようにStringで渡す
 val = val.add(val); // 0.10 + 0.10

減算処理

 BigDecimal val1 = new BigDecimal("0.11");
 BigDecimal val2 = new BigDecimal("0.10");
 val = val1.subtract(val2); // 0.11 - 0.10

乗算処理

 BigDecimal val = new BigDecimal("0.10");
 val = val.multiply(val); // 0.10 * 0.10

除算処理

 BigDecimal val = new BigDecimal("0.10");
 val = val.divide(val, 2, BigDecimal.ROUND_HALF_UP); // 0.10 / 0.10 小数点以下2桁まで
丸めモード 説明 0.015の丸め -0.015の丸め
ROUND_UP 0 から離れるように丸めるモードです。 0.02 -0.02
ROUND_DOWN 0 に近づくように丸めるモードです。 0.01 -0.01
ROUND_CEILING 正の無限大に近づくように丸めるモードです。 0.02 -0.01
ROUND_FLOOR 負の無限大に近づくように丸めるモードです。 0.01 -0.02
ROUND_HALF_UP 「もっとも近い数字」に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り上げます。 0.02 -0.02
ROUND_HALF_DOWN 「もっとも近い数字」 に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り捨てます。 0.01 -0.01
ROUND_HALF_EVEN 「もっとも近い数字」 に丸めるモードです。ただし、両隣りの数字が等距離の場合は偶数側に丸めます。 0.02 -0.02

小数点以下の桁数を取得したい場合

 BigDecimal val = new BigDecimal("0.10");
 int scale = val.scale(); // 2

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.012 sec.