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