java吧 关注:1,298,066贴子:12,836,462
  • 1回复贴,共1

Java double类型存储1.1不能精确存贮,那为什么读取的时候还是1.1?

只看楼主收藏回复

double类型存储1.1不能精确存储,因为1.1转换成二进制会有缺少的部分。如果进行运算,那结果不会精确,例如2.0-1.1。那为什么对1.1不进行运算,而直接取出的时候,结果却并没有发生变化?


IP属地:北京1楼2012-02-15 09:18回复
    因为你这个东西是执行的是二进制浮点运算,而在二进制中无法精确地表示10的任何负数次方值。这个是二进制的局限性,所以我们一般不会用float和double来做精确运算。


    IP属地:广东2楼2012-02-15 09:25
    回复