一、Bigdecimal.equals()详解:

Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小数点位数),也就是说,不但值得大小要相等,保留位数也要相等,equals才能返回true。

二、采用compareTo()方法比较Bigdecimal类型是否相等:

用b.compareTo(BigDecimal.ZERO)==0,可以比较是否等于0,返回true则等于0,返回false,则不等于0

三、代码demo:

import java.math.BigDecimal;

public class BigDecimalDemo {
// 注:
// Bigdecimal的equals方法不仅仅比较值的大小是否相等,
// 首先比较的是scale(scale是bigdecimal的保留小数点位数),
// 也就是说,不但值的大小要相等,保留位数也要相等,equals才能返回true。
/**
* demo01()
* @return
* ---》bigDecimal = 0
* ---》true
* */
public static void demo01 () {
BigDecimal bigDecimal = new BigDecimal(0.0);
BigDecimal bigDecimal1 = new BigDecimal(0);
if (bigDecimal.equals(bigDecimal1)) {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("true");
} else {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("false");
}
} /**
* demo02()
* @return
* ---》bigDecimal = 0.0000
* ---》false
* */
public static void demo02 () {
BigDecimal bigDecimal = new BigDecimal(0.0).setScale(4, BigDecimal.ROUND_HALF_UP);
BigDecimal bigDecimal1 = new BigDecimal(0).setScale(3, BigDecimal.ROUND_HALF_UP);
if (bigDecimal.equals(bigDecimal1)) {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("true");
} else {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("false");
}
}
/**
* demo03()
* @return
* ---》bigDecimal = 0.0000
* ---》true
*
* compareTo()方法
* 返回值
* 1、如果指定的数与参数相等返回 0。
* 2、如果指定的数小于参数返回 -1。
* 3、如果指定的数大于参数返回 1。
* */
public static void demo03 () {
BigDecimal bigDecimal = new BigDecimal(0.0).setScale(4, BigDecimal.ROUND_HALF_UP);
BigDecimal bigDecimal1 = new BigDecimal(0).setScale(3, BigDecimal.ROUND_HALF_UP);
//比较是否等于0: b.compareTo(BigDecimal.ZERO)==0
if (bigDecimal.compareTo(bigDecimal1) == 0) {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("true");
} else {
System.out.println("bigDecimal = " + bigDecimal);
System.out.println("false");
}
} public static void main(String[] args) {
demo01();
demo02();
demo03();
}
}

搜索

复制

10、比较Bigdecimal类型是否相等的方法的更多相关文章

  1. bigdecimal类型数据的min方法

    java.math.BigDecimal.min(BigDecimal val) 返回此BigDecimal和val的最小值. 声明 以下是java.math.BigDecimal.min()方法的声 ...

  2. 判断Bigdecimal类型是否等于0的方法

    1.我之前用来判断Bigdecimal类型是否等于0的方法 b.equals(BigDecimal.ZERO); 用equals方法和BigDecimal.ZERO进行比较. 2.上面方法存在的问题 ...

  3. BigDecimal类的简单使用方法

    一提到Java里面的商业计算,我们都知道不能用float和double,由于他们无法进行精确计算.可是Java的设计者给编程人员提供了一个非常实用的类BigDecimal,他能够完好float和dou ...

  4. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http: ...

  5. 关于BigDecimal类型在jsp页面中进行除法运算问题

    出自:http://blog.csdn.net/u011910290/article/details/52935337 问题描述: 在项目编写过程中,发现BigDecimal在jsp中进行除法运算时, ...

  6. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  7. Java中的Bigdecimal类型运算

    Java中的Bigdecimal类型运算 双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.Java在java.math包中提 供的API类BigD ...

  8. 总结Array类型中常用的方法

    Array类型应该是 ECMAScript 中最常用的类型之一了,并且它定义的数组与其他语言有着相当大的区别.数组是数据的有序集合,我们可以通过下标对指定位置的数据进行读 写:特别的是,在 ECMAS ...

  9. [Selenium]等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的

    等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的 /** * Check if the element present with cu ...

随机推荐

  1. HDU3506 Monkey Party (区间DP)

    一道好题...... 首先要将环形转化为线形结构,接着就是标准的区间DP,但这样的话复杂度为O(n3),n<=1000,要超时,所以要考虑优化. dp[i][j]=min( dp[i][k]+d ...

  2. Vue3 JS 与 SCSS 变量相互使用

    在开发中会遇到如下需求: JS 中使用 SCSS 变量.如在 scss 中定义了一个颜色,el-menu 组件使用该颜色作为背景色,此时需要获取 scss 变量,通过 background-color ...

  3. 9. RabbitMQ系列之消息发布确认

    Publisher Confirms发布确认是用于实现可靠发布的RabbitMQ扩展. 我们将使用发布确认来确保已发布的消息已安全到达代理.我们将介绍几种使用publisher确认的策略,并解释其优缺 ...

  4. JUC(11)各种锁的理解(公平锁、可重入锁、自旋锁、死锁)

    文章目录 1.公平锁.非公平锁 2.可重入锁 3.自旋锁 4.死锁 1.公平锁.非公平锁 公平锁:非常公平.不能插队.必须先来后到 非公平锁:非常不公平.可以插队.(默认非公平) 可以修改为公平锁 2 ...

  5. postman一些你不常用的实用技巧,竟然还能这么玩

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,平时调试接口的时候,肯定需要用到接口调试工具,或者Swagger之类的.Swagger的优势在于它可以将后台加的一些接口注释信息直接展示出来,但是 ...

  6. golang中的init初始化函数

    0.1.索引 https://waterflow.link/articles/1666090530880 1.概念 1.1.源文件里的代码执行顺序 init 函数是用于初始化应用程序状态的函数. 它不 ...

  7. Linux操作系统,笔录!

    1.Linux 1.1.Linux介绍: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX ...

  8. 833——B题题解

    题目链接 题目大意: 给一串字符串(只包含0~9),定义一个最优子串的定义:如果该子串同字符种类数大于最最多字符出现数,那么这个子串可以被称为最优子串. 解题思路: 大眼一看这个数据范围他用n^2的算 ...

  9. 关于C++ find

    #include <bits/stdc++.h> using namespace std; int a[1005]; int main() { for(int i = 0;i < 1 ...

  10. Seata 1.5.2 源码学习(事务执行)

    关于全局事务的执行,虽然之前的文章中也有所涉及,但不够细致,今天再深入的看一下事务的整个执行过程是怎样的. 1. TransactionManager io.seata.core.model.Tran ...