有人能用javascript解决下面的问题吗?
var i = 10152233307863175;
alert(i.toString());警报显示值10152233307863176。任何解决方案。问题是,当我在客户端获取json对象时,当字符串被转换为json时,它包含错误的值。
发布于 2014-07-18 23:28:10
这是javascript使用的数字数据格式(双精度浮点)的精度限制。
假设您不需要进行任何数学运算,那么存储该值的最好方法就是首先将其存储为字符串。
发布于 2014-07-18 23:40:13
关于JavaScript中的数字,MDN有this要说。
根据规范,JavaScript中的
数字是“双精度64位格式的IEEE754值”。
JavaScript中没有实数整数。根据this source的说法
ECMAScript数字用二进制表示为IEEE-754 (IEC559)双精度,分辨率为53位,精度为15-16位十进制数;9e15以上的整数是精确的,...
您的号码10152233307863175包含17位数字。由于数字是用浮点数表示的,因此JavaScript会尽量做到最好,并以一种结果数最接近所提供数的方式设置位。
https://stackoverflow.com/questions/24828599
复制相似问题