Tại sao số học dấu phẩy động không chính xác trong JavaScript?
Không giống như nhiều ngôn ngữ lập trình khác, JavaScript không xác định các loại số khác nhau, như số nguyên, ngắn, dài, dấu phẩy động, v.v. Show
Số JavaScript luôn được lưu trữ dưới dạng số dấu phẩy động có độ chính xác kép, tuân theo tiêu chuẩn quốc tế IEEE 754 Định dạng này lưu trữ các số trong 64 bit, trong đó số (phân số) được lưu trữ trong các bit từ 0 đến 51, số mũ trong các bit từ 52 đến 62 và dấu ở bit 63 Giá trị (còn gọi là Phân số/Phần định trị)Số mũDấu52 bit (0 - 51) 11 bit (52 - 62)1 bit (63)Độ chính xác số nguyênSố nguyên (số không có dấu chấm hoặc ký hiệu số mũ) chính xác đến 15 chữ số Thí dụđặt x = 999999999999999; Số thập phân lớn nhất là 17 độ chính xác nổiĐể giải bài toán trên giúp nhân chia đặt x = (0. 2 * 10 + 0. 1*10)/10; Tự mình thử »Thêm số và chuỗiCẢNH BÁO JavaScript sử dụng toán tử + cho cả phép cộng và phép nối Số được thêm vào. Chuỗi được nối Nếu bạn cộng hai số, kết quả sẽ là một số Nếu bạn thêm hai chuỗi, kết quả sẽ là nối chuỗi Nếu bạn thêm một số và một chuỗi, kết quả sẽ là nối chuỗi Nếu bạn thêm một chuỗi và một số, kết quả sẽ là nối chuỗi Một sai lầm phổ biến là mong đợi kết quả này là 30 Một sai lầm phổ biến là mong đợi kết quả này là 102030 Trình thông dịch JavaScript hoạt động từ trái sang phải 10 + 20 đầu tiên được thêm vào vì x và y đều là số Khi đó 30 + "30" được nối với nhau vì z là một chuỗi Chuỗi sốChuỗi JavaScript có thể có nội dung số cho x = 100; cho y = "100"; JavaScript sẽ cố gắng chuyển đổi chuỗi thành số trong tất cả các hoạt động số Điều này sẽ làm việc Điều này cũng sẽ làm việc Và điều này sẽ làm việc Nhưng điều này sẽ không làm việc Trong ví dụ trước, JavaScript sử dụng toán tử + để nối các chuỗi NaN - Không phải là số
Cố gắng làm phép tính với một chuỗi không phải là số sẽ dẫn đến kết quả là Tuy nhiên, nếu chuỗi chứa giá trị số, kết quả sẽ là một số Bạn có thể sử dụng hàm JavaScript toàn cục Coi chừng Hoặc kết quả có thể là một phép nối như NaN5
vô cực________ 61 _______ (hoặc _______ 52 _______0) là giá trị mà JavaScript sẽ trả về nếu bạn tính toán một số nằm ngoài số lớn nhất có thể Các số phân số có thể khó đối với máy tính - và điều đó có thể dẫn đến các kết quả và lỗi không mong muốn khi làm toán với chúng. Do đó hiểu số học dấu phẩy động là chìa khóa Tạo bởi Maximilian SchwarzmüllerNgày 17 tháng 11 năm 2021 Vấn đề là gì? Đây là một ví dụ từ JavaScript - mặc dù về cơ bản có thể tìm thấy các ví dụ tương tự cho tất cả các ngôn ngữ lập trình
|