4
ความไม่เสมอภาคที่เกิดจากความไม่ถูกต้องลอย
อย่างน้อยใน Java ถ้าฉันเขียนรหัสนี้: float a = 1000.0F; float b = 0.00004F; float c = a + b + b; float d = b + b + a; boolean e = c == d; ค่าของจะฉลิตรsอี ฉันเชื่อว่าสิ่งนี้เกิดจากข้อเท็จจริงที่ว่าการลอยตัวนั้นมีข้อ จำกัด อย่างมากในการแสดงตัวเลขอย่างแม่นยำ แต่ฉันไม่เข้าใจว่าทำไมแค่การเปลี่ยนตำแหน่งของaอาจทำให้ความไม่เท่าเทียมนี้เกิดขึ้นeeefalsefalsefalseaaa ฉันลด s เป็นหนึ่งในทั้งบรรทัด 3 และ 4 ดังด้านล่างค่าของeอย่างไรก็ตามกลายเป็นt r u e :bbbeeetruetruetrue float …