JAVA開発メモ
BigDecimal
 

[リロード]   [新規|編集|差分|添付]   [トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]

サイトメニュー
最新の20件
2018-08-012018-02-222016-12-222015-06-242013-07-032013-02-262011-01-122010-06-082010-03-092010-03-032009-12-302009-10-302009-02-252009-02-242009-02-112008-09-242008-09-232008-09-16


java.math.BigDecimal

floatやdoubleのように丸め誤差が生じる演算が許されない場合、BigDecimalを使用すれば誤差なく処理が行えます。
ただし、処理は非常に遅くなるため、性能上問題がある場合はintやlongで演算し、最初と最後にスケールを合わせる必要があります。

加算処理

 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
Last-modified: Tue, 15 Feb 2005 23:07:43 JST (5299d)
Link: 開発Tips(3984d)

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.018 sec.