BigDecimal作为浮点数据的一个处理对象,在平时用的挺多,但是今天才注意到它的equals方法有特殊的地方。

equals方法是需要比较数值的精度的。

        BigDecimal b_1 = new BigDecimal("1");//精度0BigDecimal b_2 = new BigDecimal("1.0");//精度1System.out.println(b_1.equals(b_2));//false  BigDecimal b_3 = new BigDecimal(1.000);BigDecimal b_4 = new BigDecimal(1.0);//得到的2个对象就是1,所以精度都是0System.out.println(b_3.equals(b_4));//trueSystem.out.println(b_3.compareTo(b_4));//0

需要注意,构造函数参数是字符串的场景下,对于字面值一样的数据进行equals方法会得到错误的结果。

因此应该使用BigDecimal的compareTo()方法比较。

BigDecimal的equals方法相关推荐

  1. 为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! BigDecimal,相信对于很多人来说都不陌生,很多人都 ...

  2. bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较

    BigDecimal,相信对于很多人来说都不陌生,很多人都知道它的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型. 很多人都知道,在进行金额表示.金额计算等场景,不能使用do ...

  3. 为什么不能使用 BigDecimal 的 equals 方法做等值比较

    目录 前言 BigDecimal 做等值比较 使用 compareTo 方法 PS 前言 BigDecimal 是 java.math 包中提供的一种可以用来进行精确运算的类型.所以,在支付.电商等业 ...

  4. scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别

    这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...

  5. JAVA-初步认识-第十一章-object类-equals方法覆盖

    一. 现在要谈论equals方法另一个方面.如果不写equals方法,直接用==来比较也是可以的,貌似equals方法有点多余. 现在不比较对象是否相等,而是比较对象中的特定内容,比如说对象的年龄,之 ...

  6. 【宋红康学习日记11】Object类与equals方法

    1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在St ...

  7. JAVA中重写equals()方法的同时要重写hashcode()方法

    object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...

  8. Java基础学习总结(1)——equals方法

    2019独角兽企业重金招聘Python工程师标准>>> 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 ...

  9. Java培训教程:”==“和 equals 方法究竟有什么区别?

    在学习java技术过程中,我们会接触到一些变量值的相关知识,本期小编为大家介绍的教程就是关于"=="和 equals 方法究竟有什么区别?来看看下面的详细介绍. Java培训教程: ...

最新文章

  1. angular中的class写三元表达式 和 清空表单校验
  2. 分享一套主流框架源码资料,征服阿里 P7 面试必备!
  3. unix文件权限判断
  4. RabbitMQ Fanout
  5. vs code 开发企业级python_基于VS Code配置Python开发环境
  6. 我的Go语言学习之旅二:入门初体验 Hello World
  7. 教你配置支付宝应用网关和授权回调地址
  8. 算法竞赛入门经典 例题6-6 小球下落(python、C)
  9. Anaconda安装(ubuntu 14.04.03 LTS 64bit)
  10. 一个函数要使用另一个函数中的数据
  11. 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
  12. 6.2.6 String_Number
  13. 简单的MQTT客户端工具
  14. 网页文件是用HTML语言编写的,用HTML语言制作简单的网页
  15. 《duilib入门到精通》- duilib下载与编译(duilib视频教程)
  16. 骚操作 Python爬你要的网站数据
  17. ​杭州,苏州,成都哪个最宜居?
  18. php 模拟登录163邮箱,PHP模拟登陆163邮箱发邮件及获取通讯录列表的方
  19. html将英文日期格式转化为中文日期格式,excel中文日期与英文日期的转换
  20. 【现代遗传学原理-基因和基因组学】

热门文章

  1. C语言编程中void什么意思,程序设计中遇到的void到底是什么意思
  2. UDP(用户数据报协议)
  3. 牛客寒假算法基础集训营1 C. 小a与星际探索(dp或者各种姿势)
  4. Spring事务管理理解
  5. 开源BI报表工具Metabase初体验
  6. MySQL查询优化小结
  7. .9图片设置不拉伸的区域被拉伸的问题
  8. C++ 内联函数/宏/outo/for/nullptr
  9. JDK8的下载安装以及配置环境变量步骤
  10. PCB设计中地的分类及含义