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);
}
}