Java中BigDecimal比较
来源:互联网 发布:linux 打开文件夹 编辑:程序博客网 时间:2024/05/21 20:21
对于BigDecimal的零值判断
可以有三种办法
1、==
2、equals 不但值得大小要相等,保留位数也要相等
3、compareTo 比较是否等于0,返回true则等于0,返回false,则不等于0
例子:
BigDecimal b1 = new BigDecimal("0"); BigDecimal b2 = new BigDecimal("0.0"); BigDecimal b3 = BigDecimal.ZERO; System.out.println(b1.equals(b2)); System.out.println(b1.equals(b3)); System.out.println(b2.equals(b3)); System.out.println(b1.compareTo(b2)); System.out.println(b1.compareTo(b3)); System.out.println(b3.compareTo(b1));
结果:
falsetruefalse000
所以:
if(b==null||BigDecimal.ZERO.compareTo(b)==0){
doSomething…
}
查看jdk源码可以得出
public int compareTo(BigDecimal val) { // Quick path for equal scale and non-inflated case. if (scale == val.scale) { long xs = intCompact; long ys = val.intCompact; if (xs != INFLATED && ys != INFLATED) return xs != ys ? ((xs > ys) ? 1 : -1) : 0; } int xsign = this.signum(); int ysign = val.signum(); if (xsign != ysign) return (xsign > ysign) ? 1 : -1; if (xsign == 0) return 0; int cmp = compareMagnitude(val); return (xsign > 0) ? cmp : -cmp; }
int i=big_decimal.compareTo(BigDecimal.Zero); //和0,Zero比较
if(i==0) //等于
if(i==1) //大于
if(i==-1) //小于
阅读全文
0 0
- Java中BigDecimal比较
- java BigDecimal比较大小
- Java中BigDecimal解析
- Java中BigDecimal解析
- java中Bigdecimal数据类型
- 【性能】Java BigDecimal和double性能比较
- java中BigDecimal的应用
- java中BigDecimal的用法
- java中BigDecimal的操作
- Java中BigDecimal的HALF_EVEN
- Java中,BigDecimal互转Integer
- java中BigDecimal使用注意事项
- Java中BigDecimal精度丢失
- java中BigDecimal的使用
- Java中BigDecimal的使用
- java中BigDecimal的使用
- Java中BigDecimal的使用
- Java常用类型(Integer,BigDecimal)定义、转换及比较
- Hibernate与Jpa的关系
- 20171017作业
- Mycat之——多Schema配置
- DP训练 CDOJ1321柱爷的恋爱 [区间dp]
- Mac 下 PostgreSQL 的安装与使用
- Java中BigDecimal比较
- 33-main函数和命令行参数
- js中undefined与null的区别
- Python进阶(四):浅析装饰器(decorator)@
- 用栈和递归解决迷宫问题
- Ubuntu系统在NVIDIA显卡笔记本上安装(双显卡、win7、y470)
- 数据结构实验之串三:KMP应用
- Java8 I/O源码-DataInputStream与DataOutputStream
- Java之opencv人脸识别