我正在使用 jquery 从我的网络服务器获取 json 数据。当我检查返回的 Fiddler 数据时,一切看起来都很正常。但是,当我在 Chrome/IE/ 或 Safari 中开始调试时,我注意到一些值发生了变化。例如,从服务器发送的 Int64 值为:10150987224093521。但是,当我调试时,我看到它为 1015098722409352* 0 * 该值始终减一。Fiddler 显示正确的值,即:10150987224093521。它随机发生。我找不到合乎逻辑的理由。关于为什么会发生这种情况的任何想法或暗示?
问问题
598 次
1 回答
2
JavaScript 用双浮点数表示所有数字:
http://en.wikipedia.org/wiki/JavaScript_syntax#Number
数字以二进制形式表示为 IEEE-754 Doubles,它提供了接近 16 位有效数字的准确度。因为它们是浮点数,所以它们并不总是准确地表示实数,包括分数。
您的号码有 17 位数字:10 15098 72240 93521
,因此您开始失去精度。
快速javascript演示:http: //jsfiddle.net/EYjjX/
于 2012-07-17T10:05:52.663 回答