`

BigDecimal如何比较是否相等

 
阅读更多

例子:

BigDecimal a = new BigDecimal("2.00");

BigDecmial b = new BigDecimal(2);

System.out.println(a.equals(b));

输出结果是:false

原因是:BigDecimal比较时,不仅比较值,而且还比较精度???

解决方法:

BigDecimal a = new BigDecimal("2.00").setScale(2,BigDecimal.ROUND_HALF_DOWN);

BigDecmial b = new BigDecimal(2).setScale(2,BigDecimal.ROUND_HALF_DOWN);

System.out.println(a.equals(b));

结果就是:true

关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN

ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1

分享到:
评论

相关推荐

    java BigDecimal操作

    NULL 博文链接:https://ollevere.iteye.com/blog/1528655

    Java中BigDecimal精度和相等比较的坑

    BigDecimal是一种精确的数字类,一般用于高精度的开发领域中,例如银行。下面这篇文章主要给大家介绍了关于Java中BigDecimal精度和相等比较的坑的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    关于BigDecimal的构造函数与大小比较

    BigDecimal的大小比较,1.0与1.00是不相等的,得采用它自带的compareTo方法: java 代码 int i=b1.compareTo(b2) 这一次,返回的i可能为-1、0、1,分别表示小于、等于、大于 构造函数:解决了上面这个问题好像...

    阿里巴巴Java开发手册2020嵩山版.zip

    《Java开发手册》从华山到泰山,一路星夜兼程,今天的嵩山版经过不断地...3.0与3.00在我们的常规认知里是相等的,但是equals比较的结果由于考虑到精度因素,所以返回为false。 第四、修正泰山版的部分文字描述错误。

    最新JAVA开发手册_嵩山版.rar

    《Java开发手册》四年前首次发布,到现在共有200多万开发者下载阅读,并用于...3.0与3.00在我们的常规认知里是相等的,但是equals比较的结果由于考虑到精度因素,所以返回为false。 ④修正泰山版的部分文字描述错误。

    精确计算Double型数据

    精确计算Double型数据,可用于货币计算

    java 随机数 ,解决头、尾数字在四舍五入之后得到的几率其实比中间的数少一半,并不能保证头尾的数字概率与其他数字相同

    java 随机数Math.random()头、尾数字在四舍五入之后得到的几率其实比中间的数少一半,并不能保证头尾的数字概率与其他数字相同 max.subtract(min).multiply(BigDecimal.valueOf(Math.random())).add(min).setScale(0...

    INTERFACEDE-DEGISKENLER

    接口中的公共BigDecimal余额= BigDecimal.ZERO; 通过写 公共静态BigDecimal余额= BigDecimal.ZERO; 写作是一样的工作。 接口将此变量公开为静态。 默认值是强制性的。 只要应用程序启动,内存就使用相同的地址。 它...

    Lambada List集合操作实例(最全最容易理解)

    主要包含常用的排序、取某个属性list、按照属性分组、过滤集合、list转map重复key覆盖、获取最大最小值及平均数、获取基本类型的和、获取Bigdecimal求和、对基本集合去重、对集合中相同属性进行计数、集合排序、倒叙...

    整理后java开发全套达内学习笔记(含练习)

    instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。返回 boolean 值。 interface (关键字) 接口 ['intәfeis] invoke vt.调用 [in'vәuk]' ( invocation [,invәu'keiʃәn]) Iterator ...

    scala-parser-study

    类中 parse() 方法的内容的方式与该方法的 scaladoc 中描述的方式相同。另外,请确保所有单元测试都成功。Q0Parser 是一种从 Expression 开始的语言,具有以下语法规则和语法操作。 Expression ::= '+' Value$a ...

    JavaTreeSet实现摊位销售管理系统

    1.有一个水果销售摊位,销售3种水果,重量和单价各不相同,实现多次的销售业务 2.销售时如果为顾客为女性销售金额打8折 3.显示当前各种水果的库存数 4.查询全部销售记录信息 5.加入其它水果品种 6.添加进货单 7.查询...

    pgen:使用 Java 上的 Play 框架为 CRUD 服务自动生成模型、控制器和路由

    它基于与rails generator相同的想法。 ###先决条件: 使用 Play 框架构建的应用程序您的包/文件夹结构必须是: app/models app/controllers conf/routes ###如何使用: 安装 打开命令行并输入: npm install -g ...

    Generic-Arithmetic:Java中的通用算术实现

    在BigInteger和BigDecimal类的情况下,存在相应的方法。 这与在类层次结构的尽可能高的级别上定义通用操作的面向对象方法相矛盾,因此使执行通用计算的功能的实现复杂化。 如果在Internet上搜索问题,则只会找到一...

    break_eternity.js:一个Javascript数字库,用于表示大至10 ^^ 1e308和小至10 ^ -10 ^^ 1e308的数字。 break_infinity.js的续集,专为增量游戏而设计

    尽管处理的数字范围更广,但执行时间却是可比的(在测试中,其速度是break_infinity.js的2倍/0.5倍),并且具有相同的接口,因此可以用作break_infinity.js和十进制.js。 现在,您可以在喜欢的hyper 4运算符中使用...

    java jdk-api-1.6 中文 chmd

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    JavaAPI1.6中文chm文档 part1

    由于比较大分为两个部分,这是第一部分 java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供用于...

    JAVA_API1.6文档(中文)

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    JavaAPI中文chm文档 part2

    由于文件比较大 分为两个部分,这是第二部分 java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供...

    java api最新7.0

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

Global site tag (gtag.js) - Google Analytics