คุณเชื่อหรือไม่ครับ ในภาษา java มี bug ?? หรือ code รูปแบบหนึ่ง ที่มีความแปลก
โดย code จะเป็นลักษณะดังนี้
อันนี้ผมทดลองเขียน code ง่ายๆ ขึ้นมาครับให้ทำการ + 0.1 ให้กับ x ซึ่งวน loop เท่ากับ 10 ครั้ง
class Cal
{
public static void main(String[] args)
{
double x = 0;
for (int i=1;i<=10;i++)
{ x += 0.1;
System.out.println("row"+i+" x = "+x);
}
}
}
[/b]
ค่าที่ควรจจะได้ค่าสุดท้ายนั้น ตามที่เราคิดควรจะเป็น 1.0 ใช่ใหมครับ แต่ผิดถนัด
อันนี้เป็น output ที่เกิดจากการ run program ด้านบนครับ จะเห็นว่าได้ค่า = 0.99...
row1 x = 0.1
row2 x = 0.2
row3 x = 0.30000000000000004
row4 x = 0.4
row5 x = 0.5
row6 x = 0.6
row7 x = 0.7
row8 x = 0.7999999999999999
row9 x = 0.8999999999999999
row10 x = 0.9999999999999999
[/b]
เหตุผลที่แท้จริงนั้นผมเองก็ไม่ทราบครับ ท่านใดสามารถอธิบายเหตุการณ์นี้ได้ช่วยชี้แจ้งด้วยนะครับ