我有一个WCF服务操作,该操作返回带有long和List<string>属性的对象。当我在WCF应用程序中测试操作时,一切正常,并且值正确。但是,我需要能够使用jQuery和JSON格式调用该服务。long当我在OnSucceed函数中读回该属性时,该属性的值显然会更改。
long
List<string>
OnSucceed
搜索后,我发现它会JSON.stringify改变很大的价值。所以在这样的代码中:
JSON.stringify
alert(JSON.stringify(25001509088465005));
…它将显示为25001509088465004。
25001509088465004
怎么了?
此处的演示:http : //jsfiddle.net/naveen/tPKw7/
JavaScript使用IEEE-754双精度(64位)格式表示数字。据我了解,这为您提供53位精度,或者15至16个十进制数字。您的数字位数超出了JavaScript所能应付的位数,因此最终得到了一个近似值。
您需要对这个大数字进行数学运算吗?因为如果它只是某种ID,则可以将其作为字符串返回并避免该问题。