JAVA数据类型学习笔记

数据类型

1.BigDecimal

金额计算必须用BigDecimal。

Double相减会转换成二进制,因为Double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差,解决方法就是使用BigDecimal,它的有效长度足够长可存储小数位数。

因此可代替Double来进行加减乘除,金额必须是完全精确的计算, 故不能使用Double或者Float, 而应该采用java.math.BigDecimal。

BigDecimal加法用a.add(b)

BigDecimal减法用a.subtract(b)

BigDecimal乘法用a.multiply(b)

BigDecimal除法用a.divide(b)

BigDecimal比较大小用a.compareTo(b)

BigDecimal.equals方法的话不仅会比较值的大小,还会比较两个对象的精确度,

compareTo方法则不会比较精确度,只比较数值的大小

所以判断BigDecimal是否为0,要使用compareTo(BigDecimal.ZERO),返回1则说明前者大于后者 返回0说明相等 返回-1说明前者小于后者

BigDecimal.negate()方法取一个BigDecimal的相反数,负数返回正数,正数返回负数

BigDecimal.stripTrailingZeros()去掉BigDecimal末尾多余的0,比如2.0000变成2。此时把这个BigDecimal.toString(),会显示科学计数法的数值,需要搭配toPlainString()使用,就会返回普通的数字字符串

你可能感兴趣的:(JAVA数据类型学习笔记)