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

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



  **java.math.BigDecimal
  floatやdoubleを使用した演算のように丸め誤差が生じるのが許されない場合に、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.021 sec.