首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >BigDecimal等于()与compareTo()

BigDecimal等于()与compareTo()
EN

Stack Overflow用户
提问于 2011-07-22 15:56:18
回答 2查看 136.9K关注 0票数 175

考虑一下简单的测试类:

import java.math.BigDecimal;

/**
 * @author The Elite Gentleman
 *
 */
public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BigDecimal x = new BigDecimal("1");
        BigDecimal y = new BigDecimal("1.00");
        System.out.println(x.equals(y));
        System.out.println(x.compareTo(y) == 0 ? "true": "false");
    }

}

您可以(有意识地)说x等于y (而不是对象引用),但是当您运行该程序时,会显示以下结果:

false
true

问:compareTo()equals()BigDecimal中有什么不同,compareTo可以确定x等于y

PS:我看到BigDecimal在equals()方法上有一个inflate()方法。inflate()到底是做什么的?

EN

回答 2

Stack Overflow用户

发布于 2019-12-11 14:32:19

我相信正确的答案应该是使这两个数字(BigDecimals)具有相同的比例,然后我们就可以决定它们是否相等。例如,这两个数字是否相等?

1.00001 and 1.00002

嗯,这取决于规模。在刻度为5 (5个小数点)时,它们是不同的。但在较小的小数精度(4级及更低)上,它们被认为是相等的。因此,我建议将两个数字的比例相等,然后进行比较。

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 19:39:15

您还可以与双精度值进行比较

BigDecimal a= new BigDecimal("1.1"); BigDecimal b =new BigDecimal("1.1");
System.out.println(a.doubleValue()==b.doubleValue());
票数 -13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6787142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档