อาจจะยังไม่มีใครสงสัยในกรณีนี้เพราะไม่ได้สังเกต
ที่จริงแล้วมีตัวเลขมากมายจนไม่สามารถระบุได้หมดครับที่นำมาหักลบกลบกันแล้วไม่เท่ากับที่ควรเป็น เช่น
- 10.9-10.8 แล้วไม่เท่ากับ 0.1
- 5.5-5.4 แล้วไม่เท่ากับ 0.1
- 4.3-4.2 แล้วไม่เท่ากับ 0.1
- ฯลฯ
ทดสอบได้อย่างไรว่าไม่เท่ากัน
เพราะได้ทดลองคีย์ลงในเซลล์แล้วก็เห็นได้คำตอบเป็น 0.1 ซึ่งถูกต้องแล้ว ทดสอบง่าย ๆ ครับ ลองคีย์ตามนี้
- A1 กรอก 5.5
- A2 กรอก 5.4
- A3 คีย์
=A1-A2 - A4 คีย์
=A3=0.1==> คำตอบจะต้องได้ False
เป็นการให้โปรแกรมตรวจสอบว่า 5.5 หักด้วย 5.4 แล้วเท่าักับ 0.1 หรือไม่ ถ้าเท่าจะได้ค่า True ถ้าไม่เท่าจะได้ค่า False ดังนั้นที่เห็นด้วยตาว่า 0.1 คงจะไม่ใช่เสียแล้ว
อ้อ…ใครได้ค่า True บอกด้วยครับ จะได้ซื้อเครื่องนั้นมาใช้ ![]()
อ้าว…แล้วอย่างนี้จะเชื่อได้อย่างไรว่า Excel คำนวณถูกต้อง ![]()
เรื่องความแม่นยำในการคำนวณไม่ต้องสงสัย Excel หรอกครับ เพราะ Excel เก่งกว่าที่คิดไว้มาก สำหรับกรณีที่ยกมานี้ สาเหตุที่ผลการคำนวณออกมาแล้วไม่เป็นไปตามที่เราหวังจะได้เห็น เกิดจากการแปลงเลขฐาน 10 ที่เราคีย์ลงไปให้เป็นเลขฐาน 2 (0 กับ 1) แล้วแปลงกลับเป็นเลขฐาน 10 เพื่อการแสดงผล แม้จะไม่ตรงเผง แต่จะผิดพลาดในหลักมาก ๆ เช่น หลักที่ 15 เป็นต้น จึงไม่กระทบกับการคำนวณที่ไม่ได้ต้องการความละเอียดขนาดนั้น ![]()
จากตัวอย่าง 5.5-5.4 จะได้ 0.0999999999999996 (คีย์ตัวเลขในเซลล์ใด ๆ =5.5-5.4 แล้วลากเมาส์ไปคลุม 5.5-5.4 จากนั้นกดแป้น F9 จะได้ตัวเลข 0.0999999999999996) ซึ่งไม่เท่ากับ 0.1
จากผลต่างดังกล่าว ก็มีคนสงสัยต่อไปว่า หากต้องการทำให้ได้ 0.1 ตามที่ควรจะเป็นจะต้องทำอย่างไร เรื่องนี้ไม่ยากครับ
- ใช้ฟังก์ชั่น Round เข้ามาช่วย ลองคีย์ที่เซลล์ใด ๆ ใหม่เป็น
=Round(5.5-5.4,2)=0.1
สูตร Round เป็นสูตรการปัดเศษให้เหลือทศนิยม 2 ตำแหน่ง คราวนี้คำตอบต้องเป็น True อย่างแน่นอน
- กำหนด Precision as displayed โดยเข้าเมนู File > Options > Advanced > ตรง When calculating this workbook: ทำเครื่องหมายตรง Set precision as displayed
การกำหนดเช่นนี้จะทำให้ค่าในเซลล์เหลือจุดทศนิยมเท่าที่เรากำหนด Format หรือนั่นก็คือเท่าที่มองเห็นด้วยตาแต่จะมีผลกระทบทั้งไฟล์ ดังนี้
- หากค่านั้น ๆ เป็นค่าคงที่ จะถูกตัดทศนิยมให้เหลือเท่าที่มองเห็นในเซลล์อย่างถาวร
- หากค่านั้น ๆ ได้จากสูตร จะสามารถปรับทศนิยมเพิ่มลดได้ตามต้องการซึ่งเหมือน Round ให้โดยอัตโนมัติ
🎯 ผลที่ได้หลังกำหนด Precision as displayed
การพิสูจน์ว่าหลังจากกำหนด Precision as displayed แล้ว 5.5-5.4 เท่ากับ 0.1 ให้ลองดังนี้ครับ
- A1 กรอก 5.5
- A2 กรอก 5.4
- A3 คีย์
=A1-A2 - กำหนด Format ให้เป็นทศนิยม 2 ตำแหน่ง
- A4 คีย์
=A3=0.1==> คำตอบจะต้องได้ True
Revised: January 27, 2017 at 19:15

