我正在使用jquery从我的网络服务器获取json数据。当我检查返回的Fiddler数据时,一切看起来都正常。但是,当我在Chrome / IE /或Safari中启动调试时,我注意到某些值已更改。例如,Int64是从服务器发送的,值为:10150987224093521.但是,当我调试时,我将其视为1015098722409352 * 0 *,该值始终减1。 Fiddler显示正确的值,即:10150987224093521。它是随机发生的。我无法找到合理的理由。有关为什么会发生这种情况的任何想法或提示?
答案 0 :(得分:2)
JavaScript表示具有双浮点数的所有数字:
http://en.wikipedia.org/wiki/JavaScript_syntax#Number
数字以二进制表示为IEEE-754双打,提供 精度接近16位有效数字。因为他们漂浮着 点数,它们并不总是完全代表实数, 包括分数。
您的号码有17位数字:10 15098 72240 93521
,因此您开始失去精确度。
快速javascript演示:http://jsfiddle.net/EYjjX/