พวกเขาไม่ได้จัดเก็บπด้วยความแม่นยำจุดลอยตัวผิดปกติ พวกเขากำลังใช้ค่าที่ไม่ถูกต้องสำหรับπที่มีความแม่นยำสองเท่า ไปยัง ประมาณ 3.1415926536 ในไบนารีต้องมีอย่างน้อย 38 บิต:
3.14159265359922… > 11.001001000011111101101010100010001001
ขอให้สังเกตว่า 2 ^ -36 ประมาณ 1.5e-11 ซึ่งสอดคล้องกับ 99 ต่อท้าย จุดลอยตัวความแม่นยำสองเท่า มีซิกนิฟินด์ 52 บิต เพื่อประเมินผล cos(pi/2)
ในฐานะ -5e-12 ทางเลือกอื่นที่เป็นไปได้จะเป็นแบบ 48 บิตซึ่งน่าแปลก
ใกล้ 0 และπซึ่งอนุพันธ์เกือบเป็นศูนย์ cos (θ) ไม่สามารถคำนวณได้อย่างแม่นยำมาก:
cos(3.1415926536) ≈ -0.999999999999999999999947911
ซึ่งแตกต่างจาก -1 โดยประมาณ 5.2e-23 ซึ่งน้อยกว่าεสำหรับ double
ดังนั้น cos(3.1415926536)
คำนวณเป็น อย่างแน่นอน -1 ... ซึ่งไม่ถูกต้อง
ใกล้±π / 2, อนุพันธ์ [ -sin (θ) ] เกือบ± 1 ดังนั้นข้อผิดพลาดที่อินพุตจะกลายเป็นเอาท์พุท
cos(1.57079632679961) ≈ -4.71338076867830836e-12
cos(1.57079632679962) ≈ -4.72338076867830836e-12
cos(1.57079632680000) ≈ -5.10338076867830836e-12
ฉันบังเอิญมีเครื่องคิดเลข TI ที่แสดงตัวเลขน้อยลงหนึ่งหลักและคำนวณ cos(π/2)
เช่น -5.2e-12 อย่างไรก็ตามมันแตกต่างกันมากทางอิเล็กทรอนิกส์และถูกออกแบบมาเพื่อให้คุณค่าที่แน่นอนสำหรับ cos(90°)
.
ฉันเดาว่าใน Spotlight cos(pi/2)
กำลังคำนวณโดยดึงค่าสำหรับπ, การแปลงเป็นสตริงทศนิยม เก็บไว้ว่าเป็นค่าไบนารี (แน่นอน, มีเหตุผล) 11.00100100001111110110101010001000100100001101101111 (หรือ 10,000) หารด้วย 2 แล้วลบออกจาก คุณค่าที่แท้จริง ของπ / 2 คุณควรตรวจสอบว่า cos(pi/2 + cos(pi/2))
ใกล้ศูนย์ (อาจเป็น -2.2e-35)
การคูณด้วยกำลังสองควรส่งผลกระทบเฉพาะเลขชี้กำลังไม่ใช่นัยสำคัญ อาจเป็นไปได้ที่จะกำหนดวิธีการปัดเศษโดยใช้การลดลงครึ่งหนึ่งซ้ำหรือสองเท่า