Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

Floating-point Arithmetic ใน JavaScript แม่นยำ 100% หรือไม่

Floating-point arithmetic ใน JavaScript ไม่แม่นยำ 100% เสมอไป ตัวอย่าง 1/3 = 0.33333... ค่าจะปัดที่จุดไม่ทราบ ถ้าบวกกับทศนิยมอีกตัว จะไม่ได้ผลลัพธ์ที่ต้องการ มี rounding errors แต่ errors เล็กมาก ไม่ส่งผลต่อโค้ดจริงมากนัก

ตัวอย่าง: 0.3 + 0.6 ควรเป็น 0.9 แต่เพราะ rounding errors ได้ค่าอื่น

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

<html> <body> 
    <p id="F-P-A"></p> 
    <script> 
        var err = 0.3 + 0.6; 
        document.getElementById("F-P-A").innerHTML = "0.3 + 0.6 = " + err; 
    </script> 
</body> </html>

ผลลัพธ์

0.3 + 0.6 = 0.8999999999999999

ตัวอย่าง: 0.2 + 0.1 ควรเป็น 0.3 แต่ได้ค่าอื่นเพราะ rounding error

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

<html> <body> 
    <p id="F-P-A"></p> 
    <script> 
        var err = 0.2 + 0.1; 
        document.getElementById("F-P-A").innerHTML = "0.2 + 0.1 = " + err; 
    </script> 
</body> </html>

ผลลัพธ์

0.2 + 0.1 = 0.30000000000000004