BigDecimal
1.new BigDecimal()和
BigDecimal.valueOf()
===>
BigDecimal bd1 = new BigDecimal(0.01);
BigDecimal bd2 = BigDecimal.valueOf(0.01);
System.out.println("bd1 = " + bd1);
System.out.println("bd2 = " + bd2);
=====>
bd1 = 0.01000000000000000020816681711721685132943093776702880859375
bd2 = 0.01
等值比较
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("1.00");
System.out.println(bd1.equals(bd2));
System.out.println(bd1.compareTo(bd2));
=====>
false
0
BigDecimal
中equals
方法的实现会比较两个数字的精度,而compareTo
方法则只会比较数值的大小。
BigDecimal
转回String
BigDecimal d = BigDecimal.valueOf(12334535345456700.12345634534534578901);
String out = d.toString(); // Or perform any formatting that needs to be done
System.out.println(out); // 1.23345353454567E+16
=======>
String toString(); // 有必要时使用科学计数法
String toPlainString(); // 不使用科学计数法
String toEngineeringString();