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桁まで
|CENTER:''丸めモード''|CENTER:''説明''|CENTER:''0.015の丸め''|CENTER:''-0.015の丸め''|
|ROUND_UP|0 から離れるように丸めるモードです。|RIGHT:0.02|RIGHT:-0.02|
|ROUND_DOWN|0 に近づくように丸めるモードです。|RIGHT:0.01|RIGHT:-0.01|
|ROUND_CEILING|正の無限大に近づくように丸めるモードです。|RIGHT:0.02|RIGHT:-0.01|
|ROUND_FLOOR|負の無限大に近づくように丸めるモードです。|RIGHT:0.01|RIGHT:-0.02|
|ROUND_HALF_UP|「もっとも近い数字」に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り上げます。|RIGHT:0.02|RIGHT:-0.02|
|ROUND_HALF_DOWN|「もっとも近い数字」 に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り捨てます。|RIGHT:0.01|RIGHT:-0.01|
|ROUND_HALF_EVEN|「もっとも近い数字」 に丸めるモードです。ただし、両隣りの数字が等距離の場合は偶数側に丸めます。|RIGHT:0.02|RIGHT:-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.004 sec.