Javascript非常简单的函数返回奇怪的值

时间:2015-03-02 17:48:23

标签: javascript function

我有以下代码:

<a href="javascript:Add(23905762501722146)">Click</a>

function Add(id) {

    alert(id);

}

警告中的值是原始值的23905762501722144(-2)。

为什么会这样?

https://jsfiddle.net/wvtqostd/4/

2 个答案:

答案 0 :(得分:4)

log2(23905762501722146)〜= 54.408

JavaScript将所有数字(包括整数)存储为双精度浮点数。双精度尾数/有效数包含52位信息,因此一些信息会丢失,存储的数据时间长/精确。

答案 1 :(得分:4)

因为23905762501722144要大表示为整数值...尝试将其作为字符串值发送。