java float 转double_将float转换为double而不会丢失精度
生活随笔
收集整理的這篇文章主要介紹了
java float 转double_将float转换为double而不会丢失精度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我發現轉換為二進制表示更容易理解這個問題。
float f = 0.27f;
double d2 = (double) f;
double d3 = 0.27d;
System.out.println(Integer.toBinaryString(Float.floatToRawIntBits(f)));
System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d2)));
System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d3)));
您可以通過向末尾添加0來看到float擴展為double,但是0.27的雙重表示“更準確”,因此問題。
111110100010100011110101110001
11111111010001010001111010111000100000000000000000000000000000
11111111010001010001111010111000010100011110101110000101001000
總結
以上是生活随笔為你收集整理的java float 转double_将float转换为double而不会丢失精度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java字符串操作_Java的字符串操作
- 下一篇: java的final修饰_java fi