package cn.tedu.bigdecimal;
import java.math.BigDecimal;
import java.util.Scanner;
public class Test1_Bigdecimal {
public static void main(String[] args) {
method2();
}
private static void method2() {
double a = new Scanner(System.in).nextDouble();
double b = new Scanner(System.in).nextDouble();
BigDecimal bd1 = new BigDecimal(a + "");//最好不要使用double作为参数的构造方法,有坑
BigDecimal bd2 = new BigDecimal(b + "");
BigDecimal bd3, bd4, bd5, bd6;//定义BigDecimal 类型的变量
bd3 = bd1.add(bd2);//加法运算
bd4 = bd1.subtract(bd2);//减法运算
bd5 = bd1.multiply(bd2);//乘法运算
//java.lang.ArithmeticException:Non-terminating decimal expansion; no exact representable decimal result.
//除法运算,当除不尽时会抛异常
//divide(m,n,o) -- m是除数,n是要保留几位小数,o是舍入方式(程序中是四舍五入)
bd6 = bd1.divide(bd2, 3, BigDecimal.ROUND_HALF_UP);//除法运算
System.out.println(bd3);
System.out.println(bd4);
System.out.println(bd5);
System.out.println(bd6);
}
}
java 浮点数运算不精确的解决办法
最新推荐文章于 2024-07-29 16:10:37 发布