浮点数据类型具有误差,不适合用于不允许舍入的金融领域,如果要进行不舍入误差的精确数字运算,需要使用BigDecimal类。
import java.math.BigDecimal;
public class TestprimitiveDataType3 {
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));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd); //0.5
System.out.println(1.0 - 0.1 -0.1 - 0.1 -0.1 - 0.1 ); //0.5000000000000001
}
}