Japanese / English
JavaでBigDecimal同士の比較
BigDecimalオブジェクト同士の大小比較にはcompareToメソッドを使用します。
この時compareToメソッドの戻り値はAPIには、 BigDecimalの値が比較するBigDecimaより小さい場合は-1、等しい場合は0、大きい場合は1 とあります。
ですので、以下のように戻り値を-1や1と比較しがちです。

if(a.compareTo(b) == -1){
    // 処理
}
このように比較すると全ての比較演算子が使用できません。ですのでcompareToメソッドの戻り値は必ず0と比較します。
0と比較することにより比較演算子(<、==、>、>=、!=、<=)の全てが使用できるようになります。
以下は、例です。

import java.math.BigDecimal;

public class BigDecimalTest {

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("0");
        BigDecimal b = new BigDecimal("1");
        BigDecimal c = new BigDecimal("-1");
        // <、==、>、>=、!=、<= 0と比較
        if(a.compareTo(b) <0){
            System.out.println("正しい");
        }
        if(a.compareTo(c) > 0){
            System.out.println("正しい");
        }
        if(a.compareTo(b) <= 0){
            System.out.println("正しい");
        }
        if(b.compareTo(b) == 0){
            System.out.println("正しい");
        }
        if(a.compareTo(c) >= 0){
            System.out.println("正しい");
        }
        if(a.compareTo(c) != 0){
            System.out.println("正しい");
        }
    }
}
出力結果は以下のようになります。

正しい
正しい
正しい
正しい
正しい
正しい
BigDecimal比較サンプル
以下、サンプルです。

// 0と等しい場合
if(a.compareTo(BigDecimal.ZERO)) = 0{

}

// 1以上(0含まない)
if(a.compareTo(BigDecimal.ZERO)) > 0{

}

// 0以上
if(a.compareTo(BigDecimal.ZERO)) >= 0{

}

Back to top

Information
Information
社長ブログ


運営サイト




広告



Google Search
PV
SEO対策 大阪  税理士 相談  税理士 守口市  税理士 大阪市  税理士 枚方市  自動車ガラス 神戸  シール印刷 神戸  ブリリアントアパートメント  株式会社CONFRAGE  英会話 個人レッスン 京都市右京区  京都市右京区西京区でマンツーマン英会話 
このページはCONFRAGEの著作物です。このページを複製・転載することを禁じます。CopyRight(C)2003-2016 CONFRAGE All rights reserved.