BigDecimal有多种构造函数,常用的有2种。建议使用String构造方式,不建议使用double构造方式。
// 强制使用String的构造函数,double也有可能计算不太准确
// 原则是使用BigDecimal并且一定要用String来构造。
public BigDecimal(String val);
public BigDecimal(double val);
方法
add()
加法subtract()
减法multiply()
乘法divide()
除法abs()
绝对值
舍入
new BigDecimal("12.34").setScale(0, BigDecimal.ROUND_HALF_UP);
ROUND_UP
始终对非零舍弃部分前面的数字加1ROUND_DOWN
从不对舍弃部分前面的数字加1,即截短ROUND_CEILING
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;如果为负,则舍入行为与 ROUND_DOWN 相同ROUND_FLOOR
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;如果为负,则舍入行为与 ROUND_UP 相同ROUND_HALF_UP
四舍五入ROUND_HALF_DOWN
五舍六入ROUND_HALF_EVEN
“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。如果前一位为奇数,则入位,否则舍去