17

BigDecimal

B

加:add(BigDecima)

减:subtract(BigDecimal)

乘:multiply(BigDecimal)

除:divide(BigDecimal)

乘方:pow(int)

取绝对值:abs()

取反:negate()

对比:compareTo(BigDecimal)

设置小数点精确度:setScale(int)

设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)

java中对BigDecimal比较大小一般用的是BigDecimal的compareTo方法:


int a = bigdemical1.compareTo(bigdemical2)
a = -1;//表示bigdemical1小于bigdemical2;
a = 0;//表示bigdemical1等于bigdemical2;
a = 1//表示bigdemical1大于bigdemical2;

java中对BigDecimal相加一般用的是BigDecimal的add方法:

BigDecimal balance  = new BigDecimal(0);
balance = balance.add(new BigDecimal("5000"));
System.out.println(balance);

同时,在new一个BigDecimal对象的时候,最好传入字符串或者int类型的数字,因为传入double类型的数字会有很神奇的事情发生,

比如说:


 BigDecimal totalAmount = new BigDecimal(0);
 totalAmount = totalAmount.add(new BigDecimal(0.59));
 System.out.println(totalAmount);

输出结果:
0.58999999999999996891375531049561686813831329345703125

但是如果传入的是String类型的数字:


BigDecimal totalAmount = new BigDecimal(0);
totalAmount = totalAmount.add(new BigDecimal("0.59"));
System.out.println(totalAmount);

输出结果:
0.59
至于为什么会是这种情况:BigDecimal 的那些坑事儿

评论后,需要站长审核通过,才会展出

人一共会长大三次;
第一次,是当你发现你不是世界的中心时,于是你开始努力
第二次是当你无能为力还会拼命争取时
第三次,是当你发现已经站在世界中心但不想成为世界中心的时候.

范俊伟(17)

Email:vanjoon@163.com
WeChat:Vanjoon_