BigDecimal精确运算要使用字符串构造方法
1.普通的BigDecimal运算
package com.gauncun; import java.math.BigDecimal; public class BigdecimalTest { public static void main(String[] args) { //精确运算使用字符串的构造 BigDecimal bigDecimal=new BigDecimal("0.1"); BigDecimal bigDecimal2=new BigDecimal("0.2"); double a = Double.parseDouble(bigDecimal.toString()); System.out.println("加法"+bigDecimal.add(bigDecimal2)); System.out.println("减法"+bigDecimal.subtract(bigDecimal2)); System.out.println("乘法"+bigDecimal.multiply(bigDecimal2)); System.out.println("除法"+bigDecimal.divide(bigDecimal2)); } }
2.特殊的(除不尽的)
package com.gauncun; import java.math.BigDecimal; public class BigdecimalTest2 { public static void main(String[] args) { //精确运算使用字符串的构造 BigDecimal bigDecimal=new BigDecimal("0.1"); BigDecimal bigDecimal2=new BigDecimal("0.3"); //bigDecimal.divide(另一个BigDecimal对象,精确几位,舍入模式) System.out.println("进一法除法"+bigDecimal.divide(bigDecimal2,2,BigDecimal.ROUND_UP));//进一法 System.out.println("去尾法除法"+bigDecimal.divide(bigDecimal2,2,BigDecimal.ROUND_FLOOR));//去尾法 System.out.println("四舍五入法s除法"+bigDecimal.divide(bigDecimal2,2,BigDecimal.ROUND_HALF_UP));//四舍五入法 } }