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“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。如果前一位为奇数,则入位,否则舍去