เกี่ยวกับความแม่นยำของการคำนวณที่เพิ่มขึ้นใน Pages, Numbers และ Keynote

หลังจากอัพเดท Pages, Numbers และ Keynote คุณอาจสังเกตเห็นการเปลี่ยนแปลงเล็กน้อยในผลลัพธ์ของการคำนวณในเอกสารของคุณ นั่นเป็นเพราะเวอร์ชั่นล่าสุดของ iWork รวมรายการอัพเดทกับเครื่องมือการคำนวณ ซึ่งให้ผลลัพธ์ที่แม่นยำยิ่งกว่าเดิม

สูตรส่วนใหญ่จะไม่แสดงความแตกต่างที่มองเห็นได้ แต่การคำนวณที่ทำให้เกิดหรือใช้ตัวเลขที่น้อยมากอาจแสดงคำตอบที่แม่นยำยิ่งขึ้น

ตัวอย่างที่ 1

ใน Numbers, Pages และ Keynote เวอร์ชั่นก่อนหน้า การคำนวณเช่น = 10.0 - 9.8 มีผลลัพธ์เท่ากับ 0.199999999999999

การเปลี่ยนจำนวนทศนิยมที่แสดงในเซลล์ (ระหว่าง 1 ถึง 14 ตำแหน่งทศนิยม) สามารถแก้ไขปัญหาเพื่อแสดงผลลัพธ์ที่คาดหวังที่ 0.2การเพิ่มจำนวนทศนิยมที่แสดงในเซลล์จะแสดง 0.199999999999999000000000000000

สิ่งนี้เกิดขึ้นเนื่องจากวิธีที่เลขฐานสองจัดเก็บตัวเลขทศนิยมเป็นการภายใน การแสดงเลขฐานสองของจำนวนทศนิยมทำให้เกิดความคลาดเคลื่อนน้อยมาก เครื่องมือการคำนวณใน Pages, Numbers และ Keynote มักใช้เทคนิคที่ซับซ้อนเพื่อป้องกันความแตกต่างเหล่านี้จากการรวมภายในการคำนวณ แต่ความแตกต่างอาจเห็นชัดเจนเมื่อมีความแม่นยำสูงมาก

เครื่องมือการคำนวณใหม่ปรับปรุงให้ดีขึ้นอย่างมากเมื่อเทียบกับเวอร์ชั่นก่อนหน้าโดยใช้การแสดงเลขฐานสองของตัวเลขตลอดการคำนวณ

ผลที่ได้คือการคำนวณเดียวกัน {= 10.0 - 9.8 ตอนนี้มีผลลัพธ์เท่ากับ 0.2 ในตอนนี้การเพิ่มจำนวนทศนิยมที่แสดงจะแสดงค่าเป็น 0,2000000000000000000000000000000

ตัวอย่างที่ 2

ในเวอร์ชั่นก่อนหน้าของ Numbers สูตร ROUND(8.415,2) จะแสดงค่า 8.41 เกิดเช่นนี้ขึ้นได้เนื่องจากวิธีการจัดเก็บค่าภายในเป็นเลขฐานสอง

ด้วยเครื่องมือการคำนวณใหม่ ROUND(8.415,2) จะแสดงค่า 8.42

เกี่ยวกับการเข้ารหัส Binary Coded Decimal กับ Decimal Floating Point

คอมพิวเตอร์ส่วนใหญ่จะจัดเก็บตัวเลขเป็นชุดเลขศูนย์และหนึ่ง ซึ่งก็คือค่าเลขฐานสอง กระบวนการที่เรียกว่าการเข้ารหัส Binary Coded Decimal (BCD) จะแปลงตัวเลขเศษส่วนเป็นคู่เลขฐานสอง เมื่อตัวเลขถูกเข้ารหัสด้วย BCD ค่าบางค่าจะไม่สามารถแสดงได้อย่างแม่นยำโดยสมบูรณ์ ตัวอย่างเช่น 0.2 ในรูปแบบเลขฐานสอง 0.001100110011... (ซ้ำ) ค่าจะต้องถูกตัดเพื่อเข้ารหัสโดยใช้ BCD ซึ่งจะเปลี่ยนแปลงค่าที่จัดเก็บไว้เล็กน้อย แม้ว่าความแตกต่างที่เกิดจาก BCD อาจมีขนาดเล็กมาก แต่ความคลาดเคลื่อนเหล่านี้จะชัดเจนมากขึ้นเมื่อขยายผ่านกลุ่มการคำนวณบางประเภท

เวอร์ชั่นล่าสุดของ Pages, Numbers และ Keynote จะเข้ารหัสตัวเลขโดยใช้การเข้ารหัส Decimal Floating Point (DFP) 128 บิต นี่เป็นวิธีที่แม่นยำกว่าในการเข้ารหัสเศษส่วนทศนิยม ซึ่งช่วยหลีกเลี่ยงข้อผิดพลาดในการปัดเศษตามแบบฉบับของการเข้ารหัส BCD นอกจากนี้เครื่องมือการคำนวณที่อัพเดทจะทำงานโดยตรงกับตัวเลขที่เข้ารหัสด้วย DFP กล่าวคือค่าในเซลล์ตารางจะถูกเก็บไว้อย่างแม่นยำมากขึ้นและผลลัพธ์ของสูตรจะคำนวณอย่างแม่นยำมากขึ้น

สูตรส่วนใหญ่จะไม่แสดงความแตกต่างที่มองเห็นได้ แต่ในตอนนี้การคำนวณที่ทำให้เกิดหรือใช้ตัวเลขที่น้อยมากอาจแสดงคำตอบที่แม่นยำยิ่งขึ้น

วันที่เผยแพร่: