สิ่งนี้จะทำให้เกิดข้อผิดพลาด:
public class MyClass {
public static void main(String args[]) {
float a = 0.5;
}
}
/MyClass.java:3: ข้อผิดพลาด: ประเภทที่เข้ากันไม่ได้: การแปลงการสูญเสียที่เป็นไปได้จาก double เป็น float a = 0.5;
นี้จะทำงานได้อย่างสมบูรณ์แบบ
public class MyClass {
public static void main(String args[]) {
double a = 0.5;
}
}
นอกจากนี้ยังจะทำงานได้อย่างสมบูรณ์แบบ
public class MyClass {
public static void main(String args[]) {
float a = (float)0.5;
}
}
เหตุผล : Java โดยค่าเริ่มต้นเก็บตัวเลขจริงเป็นสองเท่าเพื่อให้แน่ใจว่ามีความแม่นยำสูงขึ้น
Double ใช้พื้นที่มากขึ้น แต่แม่นยำยิ่งขึ้นในระหว่างการคำนวณและ float ใช้พื้นที่น้อยลง แต่แม่นยำน้อยกว่า