วิธีแบบเลขทศนิยมลอยตัว (Floating point) ที่มักใช้ในการแทนจำนวนจริงที่ไม่ใช่จำนวนเต็มในคอมพิวเตอร์นั้นมีข้อดีคือสามารถแทนตัวเลขได้ในช่วงที่กว้างมาก แต่เนื่องจากเป็นเพียงการแทนค่าประมาณ จึงมีข้อผิดพลาดและไม่สามารถแทนหรือคำนวณตัวเลขได้อย่างแม่นยำ นอกจากนี้ยังควรระวังด้วยว่าไม่มีการรับประกันว่าทุกภาษาจะจัดการเหมือนกันทั้งหมด เนื้อหาเกี่ยวกับการจัดการเลขทศนิยมลอยตัวที่แตกต่างกันเล็กน้อยในแต่ละภาษาสามารถดูได้ที่ https://0.30000000000000004.com/

ขอแนะนำเอกสารที่อธิบายวิธีแก้ปัญหาเมื่อเกิดปัญหาจากความคลาดเคลื่อนของเลขทศนิยมลอยตัวใน Python (ประมาณเวอร์ชัน 3.5 ขึ้นไป) (ภาษาเกาหลี) โดยระบุว่าวิธีแก้ที่สะอาดที่สุดคือการนำโมดูล decimal มาใช้และใช้ชนิดข้อมูลเลขฐานสิบ แนวคิดคือถ้าปัญหาเกิดจากเลขทศนิยมลอยตัวแบบฐานสอง ก็ให้คำนวณแบบฐานสิบเหมือนมนุษย์แทน ซึ่งจะช่วยหลีกเลี่ยงปัญหาได้ ว่ากันว่าในสาขาที่ต้องการความแม่นยำของการคำนวณทศนิยม เช่น การเงินหรือการบัญชี ก็ใช้วิธีนี้เช่นกัน

p.s.

เป็นที่ทราบกันว่า CPU ที่ใช้ใน IBM mainframe มีความสามารถในการคำนวณเลขฐานสิบในระดับฮาร์ดแวร์ เพราะในธนาคารและองค์กรลักษณะคล้ายกันก็ยังมีหลายแห่งที่ยังคงใช้เมนเฟรมอยู่

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น