import java.math.*;
import java.lang.Float;public class BigDecimal001 { 
  public static void  main(String args[]) 
    { 
      double d1 = 2.0-1.9; 
      System.out.println(d1); 
      float f1 = 2.0f-1.9f; 
      System.out.println(f1); 
      BigDecimal test=new BigDecimal("2.0"); 
      BigDecimal b1 = test.subtract(new BigDecimal("1.9")); 
      System.out.println(b1); 
      System.out.println((2-java.lang.Math.pow(2,152))*java.lang.Math.pow(2,1023)); 
    } 
} 运行结果: 
0.10000000000000009  
0.100000024  
0.1 
有谁能告诉我为什么会这样吗?