BigDecimal

对于BigDecimal的大小比较,用equals(scale是bigdecimal的保留小数点位数,比如 new Bigdecimal("1.001"),scale为3)方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不会比较精确度,只比较数值的大小。b.compareTo(BigDecimal.ZERO)==0

New Bigdecimal(int,double,long,String)

方法:加:add(Bigdecimal);  减: subtract(BigDecimal);乘:multiply(BigDecimal);除:divide(BigDecimal)

转字符串:toString();双精度返回:doubleValue();单精度返回:floatValue();长整数返回:longValue();整数返回:intValue()

格式化:
public static void main(String[] args) {
    NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用 
    NumberFormat percent = NumberFormat.getPercentInstance();  //建立百分比格式化引用 
    percent.setMaximumFractionDigits(3); //百分比小数点最多3位 
    
    BigDecimal loanAmount = new BigDecimal("15000.48"); //贷款金额
    BigDecimal interestRate = new BigDecimal("0.008"); //利率   
    BigDecimal interest = loanAmount.multiply(interestRate); //相乘

    System.out.println("贷款金额:	" + currency.format(loanAmount)); 
    System.out.println("利率:	" + percent.format(interestRate)); 
    System.out.println("利息:	" + currency.format(interest)); 
}

 比较(compareTo(BigDecimal)来比较的):

public static void main(String[] args) {
    BigDecimal a = new BigDecimal("1");
    BigDecimal b = new BigDecimal("2");
    BigDecimal c = new BigDecimal("1");
    int result1 = a.compareTo(b);
    int result2 = a.compareTo(c);
    int result3 = b.compareTo(a);
    System.out.println(result1);
    System.out.println(result2);
    System.out.println(result3);
    
}
原文地址:https://www.cnblogs.com/zyzg/p/7650819.html