Tôi đang tính toán trong tập lệnh java nhưng tôi đang gặp phải sự cố do độ chính xác trong số thập phân. tôi không thể đăng việc tính toán chính xác, nhưng đây là những gì tôi đang làm dẫn đến một kết quả bất ngờKết quả bất ngờ Javascript
Khi tôi viết: alert(100.01-36.01);
kết quả // là 64
Nhưng khi tôi viết: alert(100.01-37.01);
// dẫn là 63.00000000000001
và nó cứ như thế này cho 38.01 .... vv. Có thể giúp tôi giải thích tại sao điều này cho thấy một hành vi bất ngờ như vậy không. Tôi bị kẹt trong một phép tính.
Xin cảm ơn trước.
Máy không có độ chính xác vô hạn, vì vậy người ta phải luôn cẩn thận khi so sánh giá trị dấu phẩy động, 64 là số đặc biệt cho máy, sức mạnh của nó là 2 để nó có thể đại diện cho nó khá tốt. –
điều này có thể giúp bạn http://stackoverflow.com/questions/588004/is-javascripts-math-broken –
Điều này đã được hỏi ít nhất một triệu lần trên SO, vui lòng sử dụng tìm kiếm trước khi đăng câu hỏi. – Niko