簡體   English   中英

JavaScript的最大數字大小與尾隨零不同

[英]JavaScript maximum number size different with trailing zeros

我有一個16位數長的數字n1111111111111111 )。 當我在此數字上再加上1 (使它成為11111111111111111 ,長17位數字)時,它將顯示為11111111111111112

這是可以理解的,因為它大於Number.MAX_SAFE_INTEGER ,但是如果我改為添加0 (將其設置為11111111111111110 ,仍為17位長),則該數字將正確顯示為11111111111111110

let a = 11111111111111111;
let b = 11111111111111110;

console.log(a, b); // 11111111111111112 11111111111111110

上面的行為發生在除0之外的任何最后一位數字。 行為差異的原因是什么?


我已經看過“在Javascript中錯誤地舍入大數” ,但這並不能解釋為什么在添加非零數而不是在添加零時將其舍入。

這是因為在Javascript中,數字存儲為雙精度浮點數。 大整數超出了double的精度范圍,因此它們變得不准確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM