使用浮点类型可能会有丝毫的偏差
public class Test {
public static void main(String[] args) {
double a=1;
double b=0.9;
double c=a-b;
System.out.println(c);
}
}
结果要多少,如果你觉得要0.1,那你就错了。结果居然要0.09999999999999998。因为float与double都是浮点数,浮点数参与的运算通常伴随着因为无法精确表示而进行的近似或舍入,所以导致结果会有丝毫的偏差,而涉及金额的计算是绝对不予许存在偏差的。