เพียงให้เหตุผลเบื้องหลังสิ่งที่คนอื่นพูด
การแสดงเลขฐานสองของโฟลตนั้นน่ารำคาญ
ในไบนารีโปรแกรมเมอร์ส่วนใหญ่ทราบความสัมพันธ์ระหว่าง 1b = 1d, 10b = 2d, 100b = 4d, 1000b = 8d
มันก็ทำงานได้ดีเหมือนกัน
.1b = .5d, .01b = .25d, .001b = .125, ...
ปัญหาคือไม่มีวิธีที่แน่นอนในการแสดงตัวเลขทศนิยมส่วนใหญ่เช่น. 1, .2, .3, ฯลฯ สิ่งที่คุณสามารถทำได้คือประมาณในไบนารี ระบบจะปัดเศษเหลวไหลเล็กน้อยเมื่อพิมพ์ตัวเลขเพื่อให้แสดงเป็น. 1 แทนที่จะเป็น. 10000000000001 หรือ. 99999999999999 (ซึ่งอาจใกล้เคียงกับการนำเสนอที่เก็บไว้เป็น. 1)
แก้ไขจากความคิดเห็น: สาเหตุของปัญหานี้คือความคาดหวังของเรา เราคาดหวังอย่างเต็มที่ว่า 2/3 จะได้รับความอับอายในบางจุดเมื่อเราแปลงเป็นทศนิยมทั้ง. 7 หรือ. 67 หรือ. 666667 .. แต่เราไม่คาดหวังว่า. 1 จะถูกปัดเศษโดยอัตโนมัติในลักษณะเดียวกับ 2/3 - และนั่นคือสิ่งที่เกิดขึ้น
อย่างไรก็ตามถ้าคุณอยากรู้ว่าจำนวนที่เก็บไว้ภายในนั้นเป็นเลขฐานสองที่แท้จริงโดยใช้ไบนารี "สัญลักษณ์ทางวิทยาศาสตร์" ดังนั้นถ้าคุณบอกให้เก็บเลขทศนิยม 10.75d มันจะเก็บ 1010b สำหรับ 10 และ 0.11b สำหรับทศนิยม ดังนั้นมันจะเก็บ. 101011 จากนั้นจะบันทึกไม่กี่บิตในตอนท้ายเพื่อพูดว่า: เลื่อนจุดทศนิยมไปทางขวาสี่ตำแหน่ง
(แม้ว่าในทางเทคนิคแล้วมันจะไม่เป็นจุดทศนิยมอีกต่อไป แต่ตอนนี้มันเป็นจุดไบนารี่ แต่คำศัพท์นั้นจะไม่ทำให้ผู้คนส่วนใหญ่เข้าใจคำตอบของการใช้งานนี้ได้มากขึ้น)