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能得到實際的數據?