DAVID ลัน: ตอนนี้ขอให้พัดใจของคุณ มันจะเปิดออกในโลกแห่งความเป็นจริงที่ 1 แบ่งออก 10 ย่อมเป็น 1/10 หรือ 0.1 แต่ในคอมพิวเตอร์ที่มีเพียง จำกัด จำนวนบิตที่จะ แทนตัวเลขคุณไม่สามารถเสมอ เป็นตัวแทนของตัวเลขเช่น 1/10 ด้วย ความแม่นยำที่สมบูรณ์แบบ ในคำอื่น ๆ คอมพิวเตอร์บางครั้งอาจมี ที่จะทำให้สายการตัดสินและไม่ได้ จำเป็นต้องแสดงหมายเลขที่คุณ ต้องการเป็นอย่างแม่นยำตามที่ต้องการ ตัวอย่างเช่นสมมติว่าฉันกลับไปเป็น โปรแกรมนี้และเปลี่ยน 0.1, โอ้ 0.28 จึงแสดงให้เห็นว่า ฉันต้องการที่จะ printf printf ไป 28 สถานที่ของความแม่นยำ ตอนนี้ขอบันทึกและรวบรวมโปรแกรม เวลากับการทำ floats2 นี้ ทำงานกับ floats2 เฉือนจุด และรักพระเจ้าทุกครั้งที่ผมมองไม่เห็น 0.1 นี้ แต่ 0.10000000 ซึ่งเป็นสวย ที่ดีเพื่อให้ห่างไกล แต่แล้ว 14901161193847656250 ดีสิ่งที่เกิดขึ้น ดีก็ปรากฎว่าลอยเป็น จะถูกเก็บไว้ภายในเครื่องคอมพิวเตอร์ กับ 32 บิต 32 จะเห็นได้ชัดจำนวน จำกัด ซึ่ง แสดงให้เห็นว่าคุณสามารถเป็นเพียง กับ 32 บิตจำนวน จำกัด ค่าจุดลอย แต่น่าเสียดายที่ว่าหมายความว่า คอมพิวเตอร์ไม่สามารถแสดงเป็นไปได้ทั้งหมด หมายเลขจุดลอยหรือตัวเลขจริง ที่มีอยู่ในโลก เพราะมีบิตจำนวนมากเพียง และเพื่อให้สิ่งที่คอมพิวเตอร์เห็นได้ชัดว่า ทำในกรณีนี้จะเป็นตัวแทนของ 1/10 ที่จะ ลอยอยู่ใกล้ที่สุดที่เป็นไปได้ ค่าจุดที่จะสามารถ แต่ถ้าเรามองที่เรามีที่นี่ 28 ทศนิยมที่เราจะเริ่มที่จะเห็นว่า ไม่แน่ชัด ดังนั้นปัญหานี้เป็นปัญหากับ ไม่มีโซลูชั่นที่สมบูรณ์แบบ เราสามารถใช้คู่แทนที่จะลอย, ซึ่งมีแนวโน้มที่จะใช้ 64 บิตเป็น 32 เมื่อเทียบกับ แต่แน่นอน, 64 ยัง จำกัด ดังนั้นปัญหาจะ ยังคงอยู่แม้จะมีคู่