float f = 2.1474836E9f;//单步跟踪下, f 的值是 2.14748365E9
int j = (int)f;
boolean bi = i == j;
System.out.println("bi= "+bi);
上面这段代码执行后,bi将等于 true,是什么原因呢? 单步跟踪下, f 的值是 2.14748365E9,明显与程序中不一样。搜索了一下,也没找到有关float 和double在java中存储的清楚详细的说明。谁有这个的详细说明?(最好画个图)
...全文
5312打赏收藏
java中float型数据是如何存储的?
int i = Integer.MAX_VALUE;//2147483647 float f = 2.1474836E9f;//单步跟踪下, f 的值是 2.14748365E9 int j = (int)f; boolean bi = i == j; System.out.println("bi= "+bi); 上面这段代码执行后,bi将等于 true,是什么原因呢? 单步跟踪下, f 的值是 2.14748365E9,明显与程序中不一样。搜索了一下,也没找到有关float 和double在j