在大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中,这种问题是非常严重的,BigDecimal类解决算不准
BigDecimal b1=new BigDecimal(Float.toString(a));//为了解决java算不准
BigDecimal b2=new BigDecimal(Float.toString(b));//也可以是Double类型
System.out.println("加法:"+b1.add(b2));
System.out.println("减法:"+b1.subtract(b2));
System.out.println("乘法:"+b1.multiply(b2));
System.out.println("除法:"+b1.divide(b2,BigDecimal.ROUND_HALF_UP));
BigDecimal divide = b1.divide(b2,BigDecimal.ROUND_HALF_UP);
float c=divide.floatValue();//把BigDecimal类型转为float
double d=divide.doubleValue();//把BigDecimal类型转为double
//相除,BigDecimal.ROUND_HALF_UP四舍五入模式
网友评论