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("贷款金额:\t" + currency.format(loanAmount)); System.out.println("利率:\t" + percent.format(interestRate)); System.out.println("利息:\t" + 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); }