【示例】使用BigDecimal进行浮点数比较
import java.math.BigDecimal;
public static void main(String[] args){
BigDecimal bd = BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);//0.6
System.out.println(1.0-0.1-0.1-0.1-0.10;//0.60000000000001
}
}
/*浮点数使用总结
- 默认是double 类型
- 浮点数存在舍入误差,数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用**BigDecimal**类
- 避免比较中使用浮点数,需要比较请使用BigDecimal类*/