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);
posted @ 2022-04-11 17:49  彳亍亍  阅读(459)  评论(0)    收藏  举报