float--->double 的轉換

JAVA中float爲四個字節,double爲八個字節,float--->double時候會補位,如果這裏補位不出現誤差的話應該可以實現。你先將float類型數據包裝成BigDecimal數據,然後調用其floatValue()方法可以實現。
具體代碼沒有去實現了,這樣應該可以。

 

float--->double
是屬於強制轉換,會丟失精度的

 

http://bbs.csdn.net/topics/340231509

 

爲什麼double轉float不會出現數據誤差,而float轉double卻誤差如此之大?

double d = 3.14;

float f = (float)d;

System.out.println(f);

輸出結果是:3.14;

 

 

float f = 127.1f;

double d = f;

System.out.println(d);

輸出結果是:127.0999984741211

 

爲什麼結果會是這樣呢?

如何避免這樣的問題發生,讓float轉double能得到實際的數據?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章