BigDecimal/BigInteger小数运算精确的解决方案

时间:2020-07-17 19:57:03   收藏:0   阅读:58


//测试小数运算精确的解决方案
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) {
}

}

原文:https://www.cnblogs.com/muchen-123/p/13331654.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!