解决Java的精度问题
方法一:注意必须 用BigDecimal 并且 Double类型
方法二:+0.5然后向 下取整。
注意-----向上取整用Math.ceil(double a) 向下取整用Math.floor(double a)
import java.math.BigDecimal;
public class Java计算的精度问题 {
public static void main(String[] args) {
//解决Java的精度问题
// 方法一:注意必须 用BigDecimal 并且 Double类型
// 方法二:+0.5然后向下取整。 注意--向上取整用Math.ceil(double a)
// 向下取整用Math.floor(double a)
System.out.println("直接运算:"+55/0.55);
BigDecimal b1 = new BigDecimal(Double.toString(55));
BigDecimal b2 = new BigDecimal(Double.toString(0.55));
System.out.println("用BigDecimal方法:"+String.format("%.2f", b1.divide(b2)));
System.out.println("向下取整法:"+Math.floor(55/0.55+0.5));
}
}