这个类是java里精确计算的类

1、比较对象是否相等,一般的对象用equals,但是BigDecimal比较特殊,举个例子

BigDecimal a = new BigDecimal.valueOf(1.0);
BigDecimal b = new BigDecimal.valueOf(1.000);

在现实中这两个数字是相等的,但是问题来来了a.equals(b)结果是false;怎么不相等了呢?

解决办法:

  if(a.compareTo(b)==0)//结果是true
public int compareTo(BigDecimal val)
//结果是:-1 小于,0 等于,1 大于
if(a.compareTo(b) == -1){

a

}

if(a.compareTo(b)==0){

a=b;

}

if(a.compareTo(b)==1){

a>b;

}

public static MathContext mc = new MathContext();

public static BigDecimal add(BigDecimal a1,BigDecimal a2){

   a1=null2Zero(a1);

   a2=null2Zero(a2);

   return a1.add(a2,mc);

}

public static BigDecimal null2Zero(BigDecimal arg){

    return arg==null ? BigDecimal.ZERO : arg ;

}

转 Java的 BigDecimal类型比较大小的更多相关文章

  1. java 日期Date类型比较大小

      java 日期Date类型比较大小 CreateTime--2018年5月31日16点39分 Author:Marydon import java.text.DateFormat; import ...

  2. BigDecimal类型比较大小

    这个类是java里精确计算的类 1 比较对象是否相等     一般的对象用equals,但是BigDecimal比较特殊,举个例子:     BigDecimal a=BigDecimal.value ...

  3. Java基础扫盲系列(二)—— Java中BigDecimal和浮点类型

    一直以来我几乎未使用过BigDecimal类型,只有在DB中涉及到金额字段时听说要用Decimal类型,但是今天再项目代码中看到使用BigDecimal表示贷款金额. 本篇文章不是介绍BigDecim ...

  4. Java中的Bigdecimal类型运算

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

  5. java中基本类型封装对象所占内存的大小(转)

    这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runt ...

  6. java的BigDecimal比较大小

    java的BigDecimal比较大小 //前提为a.b均不能为null if(a.compareTo(b) == -1){ System.out.println("a小于b"); ...

  7. BigDecimal类型比较数字大小

    BigDecimal类型比较数字大小1.转成intBigDecimal b1 = new BigDecimal("-121454125453.145");if(b1.intValu ...

  8. Java中Integer类型的整数值的大小比较

    如果比较两个数值相等的Integer类型的整数,我们可能会发现,用"=="比较(首先你必须明确"=="比较的是地址),有的时候返回true,而有的时候,返回fa ...

  9. Java中Double类型数据比较大小

    方法一:转成字符串之后比较 如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助string的equals方法来间接实现比较两个double数据是否相等.注意这种方法 ...

随机推荐

  1. python中文档IO的读写

    首先明确一点,现代计算机的操作系统都不允许程序直接操作磁盘的,所以读取文件和写入文件都是有操作系统提供的提供的接口完成的,每一种编程语言都会把操作系统提供的低级C接口封装起来方便使用,Python也不 ...

  2. 一个非典型的Linux路由配置方案

    上周帮人解决了一个问题,这个问题绝对是非典型性的,采用了非常规的方法.虽然最终的方案非常不符合常规,非常不通用,充满了各种藏得很深的技巧或者说是trick,但是这个问题却是一个学习Linux路由的绝好 ...

  3. String,static,final

    1. String 下面代码创建了几个对象? String s1 = new String("Hello"); String s2 = new String("Hello ...

  4. easyUI datetimebox 自定义显示格式

    http://blog.csdn.net/littlewolf766/article/details/7329123 项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-d ...

  5. 二分查找(等于x,小于x,小于等于x,大于x,大于等于x )

    //等于x//小于x//小于等于x//大于x//大于等于x #include <cstdio> #include <cstdlib> #include <cmath> ...

  6. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿

    从某一点开始,以层次遍历的方式建树若三点a.b.c互相连接,首先必先经过其中一点a,然后a可以拓展b.c两点,b.c两点的高度是相同的,若b(c)拓展时找到高度与之相同的点,则存在三点互相连接 //等 ...

  7. win8安装配置python2.7

    安装python 1.下载python安装包,下载网站https://www.python.org/downloads 2.解压文件,双击python-2.7.13.amd64.msi进行安装pyth ...

  8. Kubernetes PV/PVC使用实践

    转载于https://www.cnblogs.com/ericnie/p/7733281.html   pv,pvc的概念不解释了,之前在registry中已经使用过PV和PVC,现在想把WebLog ...

  9. Ansible2:主机清单

    目录 Hosts and Groups(主机与组) 简单的主机和组 端口与别名 指定主机范围 使用主机变量 组内变量 组的包含与组内变量 Patterns(主机与组正则匹配部分) 1. 表示所有的主机 ...

  10. Djang下载虚拟环境设置

    下载安装 教程地址 https://docs.djangoproject.com/en/1.11/howto/windows/ 有一个步骤是创建虚拟环境 创建环境 mkvirtualenv env1 ...