代码之家  ›  专栏  ›  技术社区  ›  Pawan

比较大十进制值[重复]

  •  1
  • Pawan  · 技术社区  · 7 年前

    BigDecimal 对象,我正在检查其值(大于或小于100)。

    public static void main(String[] args) {    
        BigDecimal obj = new BigDecimal("100.3");   
        if (obj.intValue() > 100)
        {
            System.out.println("Greater than 100");
        }
        else
        {
            System.out.println("Not greater than 100");
        }   
    }
    

    不大于100

    1 回复  |  直到 7 年前
        1
  •  1
  •   Malte Hartwig Darren Gunning    7 年前

    你的逻辑失败的原因是 new BigDecimal("100.3").intValue() 将(如方法名所示)给出不带小数精度的值,即100。以及 100 > 100

    相反,使用 compareTo() 方法 BigDecimal

    BigDecimal oneHundred = new BigDecimal("100");
    BigDecimal obj = new BigDecimal("100.3");
    if (obj.compareTo(oneHundred) > 0) {
        System.out.println("Greader than");
    }