6.有关float精度问题

Sherwin.Wei Lv7

先来引入一个问题

1
System.err.println(9990000110F<=9990000000F);    

运行结果是: true

然后你的问题就来了,这个是谁大呢?

1
2
System.err.println(9990000110F);
System.err.println(9990000000F);

看看结果是什么?

1
2
9.9899996E9
9.9899996E9

其实这两个值在jvm是相等的,float有个规定,当位数超过8位时候自动转为科学计数法,然后就存在失真的情况.记录下,水坑来的.

Comments
On this page
6.有关float精度问题