Java基础-double的精度问题

来源:互联网 发布:创业软件 编辑:程序博客网 时间:2024/05/19 17:50

由于double精度的问题(二进制的存在),有些值double是取不到的。

public class Test {    public static void main(String[] args) {        for (double i = 0; i != 1.1; i += 0.1) {              System.out.println(i);              if (i > 2) {                  break;              }          }      }}

输出结果:
0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
1.4000000000000001
1.5000000000000002
1.6000000000000003
1.7000000000000004
1.8000000000000005
1.9000000000000006
2.0000000000000004

值1.1,double是取不到的。

0 0