Đã chơi xung quanh với JS và nhận thấy điều này.parseInt() ký pháp khoa học
Tại sao parseInt(1e+21)
trả lại 1
và parseInt(1e+20)
trả lại 100000000000000000000
? parseInt(10e+20)
cũng trả lại 1
?
Tại sao parseInt(1.7976931348623157E+10308);
trả lại NaN
trong khi parseFloat(1.7976931348623157E+10308)
trả về Infinity
?
Ngay cả làm một dãy Fibonacci và bất kỳ giá trị mà có +21
số mũ chỉ trả về chữ số đầu tiên:
parseFloat()
sẽ trở lại con số chính xác đến Infinity.
Fibonacci demo (int : parseInt() : parseFloat())
(thử nghiệm trong Chrome)
Tại sao parseInt (1e + 20) trả về 100000000000000000000 và không phải 1 thì? – rottenoats
Tôi đã nói rồi. Khi '1e + 20' bị ép buộc thành một chuỗi, nó xuất ra' "100000000000000000000" ', được phân tích cú pháp' thành số chính xác. '1e + 21' xuất ra' "1e + 21" 'thay thế. Hãy thử số tiền "" + tôi đã viết trong câu trả lời. –
rhaps0dy
Tôi đã làm. Các đầu ra parseInt ("" + 1e + 21) 1 – rottenoats