//测试小数运算精确的解决方案
public class Test3_BigDecimal {
public static void main(String[] args) {
method();
}
//暴露问题
private static void method() {
//接收用户输入的两个小数,并做+-*/运算
double a = new Scanner(System.in).nextDouble();
double b = new Scanner(System.in).nextDouble();
//System.out.println(a+b);
//System.out.println(a-b);
//System.out.println(a*b);
//System.out.println(a/b);
//1.创建BigDecimal对象
//BigDecimal(double val)---有坑,更 不精确了用BigDecimal(double val)
//BigDecimal bd1 =new BigDecimal(a);
//BigDecimal bd2 =new BigDecimal(b);
//BigDecimal(String val)---提倡---a,b转成Strng类型
BigDecimal bd1 =new BigDecimal(a+"");
BigDecimal bd2 =new BigDecimal(b+"");
BigDecimal bd3=bd1.add(bd2);
System.out.println(bd3);
bd3= bd1.subtract(bd2) ;
System.out.println(bd3);
bd3=bd1.multiply(bd2);
System.out.println(bd3);
bd3=bd1.divide(bd2,5,BigDecimal.ROUND_HALF_UP);
System.out.println(bd3);
// public static void main(String[] args) {
}
}
BigDecimal/BigInteger小数运算精确的解决方案
原文:https://www.cnblogs.com/muchen-123/p/13331654.html