Java中double存在的价值何在?1/10算不对,Java避免了一些C++的陷阱,为什么又创造出这么大的一个陷阱?为什么这样设计?

解决方案 »

  1.   

    其实在你程序出现问题的时间,你应该从自己那里寻找错误。
    double i = (double)1/10;
    float  j = (float)1/10;
    double i is : 0.1 and float j is : 0.1
    Press any key to continue...
      

  2.   

    这是java精确度的问题,double型的数据0.1和1.0它们在内存中并不是0.1和1.0而是一个不精确的double值,
      

  3.   

    java 中 float 和 double 都是非精确类型,
    如果想要精确的值, 要使用 BigDecimal 类型
    相关使用方法,参考java DOC