BigDecimal
BigDecimal
BigDecimal类
BigDecimal,用来对超过16位有效位的数进行精确的运算。
双精度浮点型变量double可以处理16位有效数,属于大数据,精度极高。
BigDecimal类型如何转换成其他类型
toString() 将BigDecimal对象的数值转换成字符串。
doubleValue() 将BigDecimal对象中的值以双精度数返回。
floatValue() 将BigDecimal对象中的值以单精度数返回。
longValue() 将BigDecimal对象中的值以长整数返回。
intValue() 将BigDecimal对象中的值以整数返回。
常用方法
- add(BigDecimal)
BigDecimal对象中的值相加,返回BigDecimal对象
-
subtract(BigDecimal)
BigDecimal对象中的值相减,返回BigDecimal对象
-
multiply(BigDecimal)
BigDecimal对象中的值相乘,返回BigDecimal对象
-
divide(BigDecimal)
BigDecimal对象中的值相除,返回BigDecimal对象
BigDecimal大小比较
.compareTo方法比较大小
BigDecimal a = new BigDecimal (1); BigDecimal b = new BigDecimal (2); int x=a.compareTo(b); System.out.println(x); //x=-1 a<b //x=0 a=b //x=1 a>b
BigDecimal中的精度控制
ROUND_UP //不管保留数字后面是大是小(0除外)都会进1 ROUND_DOWN //保留设置数字,后面所有直接去除 ROUND_HALF_UP //常用的四舍五入 ROUND_CEILING //向正无穷方向舍入 ROUND_FLOOR //向负无穷方向舍入
方法
.setScale(“保留小数点”,精度规则)
用例
.setScale(3,BigDecimal.ROUND_HALF_UP); //保留小数点三位,进一
BigDecimal方法中也可控制精度
BigDecimal a = new BigDecimal (1); BigDecimal b = new BigDecimal (2); BigDecimal c = a.divide(b,5,BigDecimal.ROUND_UP);

浙公网安备 33010602011771号