BigInteger、BigDecimal:解决整数、浮点数精度不能满足要求的问题。
具体使用
public class BigDecimalUtil {
/*
Java 大数值:BigInteger、BigDecimal
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
scale:保留几位小数,roundingMode:保留模式,默认四舍五入
常用保留模式:BigDecimal.ROUND_UP 直接进位、ROUND_DOWN 直接舍弃、ROUND_HALF_UP 四舍五入、ROUND_HALF_DOWN >5 进位,<=5 舍去
public BigDecimal[] divideAndRemainder(BigDecimal divisor) BigDecimal[0] 商 BigDecimal[1] 余数
*/
// result -1(b1<b2), 0(b1=b2), 1(b1>b2)
public static int compareTo(BigDecimal b1, BigDecimal b2) {
int result = b1.compareTo(b2);
return result;
}
// 加法
public static BigDecimal add(BigDecimal b1, BigDecimal b2) {
return b1.add(b2);
}
// 减法
public static BigDecimal subtract(BigDecimal b1, BigDecimal b2) {
return b1.subtract(b2);
}
// 乘法
public static BigDecimal multiply(BigDecimal b1, BigDecimal b2) {
return b1.multiply(b2);
}
// 除法
public static BigDecimal divide(BigDecimal b1, BigDecimal b2) {
return b1.divide(b2, 2, BigDecimal.ROUND_UP);
}
}