1. 程式人生 > >java float和double精度問題

java float和double精度問題

private static void testDouble() {
        double a = 0.05+0.01;
        float b = 0.05f+0.01f;
        System.out.println(a);
        System.out.println(b);
}
輸出結果為
a=0.060000000000000005
b=0.060000002
其中float a = 1.0會報錯,錯誤的原因:1.0預設是double型別不能轉成float,
寫成floata = (float)1.0;也會報錯,正確寫法float a = 1.0f或者1.0F
如果需要精度比較高的double和float型別進行計算最好用bigDecimal