大数字上的JSON.Stringify()会改变数值吗?

Ami*_*sen 6 javascript jquery json

我有跟返回对象的WCF服务操作longList<string>属性.当我在WCF应用程序中测试操作时,一切正常,值正确.但是,我需要能够使用jQuery和JSON格式调用服务.long当我在OnSucceed函数中读回属性时,属性的值显然会发生变化.

经过搜索,我发现JSON.stringify变化很大.所以在这样的代码中:

alert(JSON.stringify(25001509088465005));
Run Code Online (Sandbox Code Playgroud)

......它会显示价值25001509088465004.

怎么了?

在这里演示:http://jsfiddle.net/naveen/tPKw7/

nnn*_*nnn 4

JavaScript 使用IEEE-754双精度(64 位)格式表示数字。据我了解,这将为您提供 53 位精度,即十五到十六位十进制数字。你的数字的位数超出了 JavaScript 的处理能力,所以你最终得到的是一个近似值。

你需要对这么大的数字进行数学运算吗?因为如果它只是某种 ID,您可以将其作为字符串返回并避免出现问题。