首页 资讯 聚焦 手机 数码 家电 消费 电商 游娱 区链 关于我们 网站地图
首页/数字生活

1

bigdecimal比较大小现实相等的两个数字为何输出false
2021-07-30

两个BigDecimal对象大小,相等的判断:一般的对象用equals,但是BigDecimal比较特殊,举个例子:
     BigDecimal a=BigDecimal.valueOf(1.0);
     BigDecimal b=BigDecimal.valueOf(1.000);
     在现实中这两个数字是相等的,但是问题来来了。a.equals(b)结果是false;怎么不相等了呢?


      解决方法:
        if(a.compareTo(b)==0)结果是true
     public int compareTo(BigDecimal val)
          Compares this BigDecimal with the specified BigDecimal.
         Two BigDecimal objects that are equal in value but have a different
         scale (like 2.0 and 2.00) are considered equal by this method.
         This method is provided in preference to individual methods for each of
         the six boolean comparison operators (<, ==, >, >=, !=, <=).
         The suggested idiom for performing these comparisons is: (x.compareTo(y) <op> 0), where <op> is one of the six comparison operators.
    Specified by:
    compareTo in interface Comparable<BigDecimal>
    Parameters:
    val - BigDecimal to which this BigDecimal is to be compared.
    Returns:
       -1, 0, or 1 as this BigDecimal is numerically less than, equal to, or greater than val.
    简单翻译:
           结果是  -1 小于 、 0 等于 、 1 大于。

声明:该文系信息发布,IT手机世界仅提供信息存储空间服务。
点赞
来源:
新品快讯更多
厂商动态更多
会展中心更多
热搜排行更多

CopyRight@2015-2024 IT手机世界 All Right Reserved

工信备案号:京备A2-2009413

IT手机世界畅享移动互联时代智能智慧新生活