![](/img/trans.png)
[英]Determine Number of Trailing Zeros of a Factorial Function (javascript)
[英]JavaScript maximum number size different with trailing zeros
我有一個16位數長的數字n
( 1111111111111111
)。 當我在此數字上再加上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.