js-floating-point-precision-problem - xem kết quả tỷ số bóng đá

/imgposts/6vsnygiq.jpg

Trong ngôn ngữ lập trình JavaScript, khi sử dụng kiểu dữ liệu số thực (float), bạn có thể gặp phải những kết quả tính toán không như mong đợi.

12.4 - 2.25
2> 0.1499999999999999
30.1 [xem kết quả tỷ số bóng đá](/blog/laravel-7-released-a-new-version-new-features-and-changes/)  + 0.2
4> 0.30000000000000004

Như vậy, đây là một vấn đề phổ tỷ số trực tuyến bóng đá 7m.cn biến và đã được nhiều lập trình viên quan tâm.

1(2.4 * 100 - 2.25 * 100) / 100
2> 0.15

Bằng cách nhân cả hai số với cùng một bội số (trong trường hợp này là 100) để chuyển chúng thành số nguyên, sau đó thực hiện phép tính và chia lại cho bội số tương ứng, ta có thể đạt được kết quả chính xác hơn.

1(0.1 + 0.2).toFixed(2)
2> "0.30"

Nếu bạn không yêu cầu độ chính xác tuyệt đối, việc làm tròn kết quả bằng phương thức toFixed() sẽ giúp bạn loại bỏ các chữ số không mong muốn sau dấu thập phân.

Tuy nhiên, không phải lúc nào việc nhân với một bội số cũng mang lại kết quả chính xác:

12.3 * 100
2> 229.99999999999997
32.3 * 10
4> 23
5parseInt((2.3 * 100).toFixed(0))
6> 230

Như vậy, vn69 việc nhân 2.3 với 100 dẫn đến một kết quả không đúng như kỳ vọng. Điều này chứng tỏ rằng, ngay cả khi áp dụng phương pháp chuyển đổi sang số nguyên, vẫn có thể xảy ra sai số do giới hạn của cách biểu diễn số thực trong máy tính. Do đó, việc làm tròn thường là lựa chọn an toàn hơn trong hầu hết các tình huống.