Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析浮点有舍入限制吗?我怎样才能解决这个问题?_Javascript_Math_Parsefloat - Fatal编程技术网

Javascript 解析浮点有舍入限制吗?我怎样才能解决这个问题?

Javascript 解析浮点有舍入限制吗?我怎样才能解决这个问题?,javascript,math,parsefloat,Javascript,Math,Parsefloat,我建立了一个将压缩数据字符串解析为JSON的系统。我用一个19位数的数字来存储ID。不幸的是,任何大于17位的数字,parseFloat() 这会破坏整个数据字符串。我能修好这个吗 例如,8246295522085275215变为8246295522085276000。为什么会这样 如果JavaScript中的数字高于某个值,则会失去精度 根据,整数最多只能有15位(确切地说是9*10^15)。JavaScript只有一种数字类型,即IEEE 754双精度。这意味着,您的最大精度为52位,比15

我建立了一个将压缩数据字符串解析为JSON的系统。我用一个19位数的数字来存储ID。不幸的是,任何大于17位的数字,
parseFloat()

这会破坏整个数据字符串。我能修好这个吗

例如,
8246295522085275215
变为
8246295522085276000
。为什么会这样


如果JavaScript中的数字高于某个值,则会失去精度


根据,整数最多只能有15位(确切地说是9*10^15)。

JavaScript只有一种数字类型,即IEEE 754双精度。这意味着,您的最大精度为52位,比15位小数位多一点

如果您需要更高的精度,则必须使用bignum库或处理字符串。

尝试其中一种 1.使用字符串 2.将数字一分为二,并将较小的部分保存到数组中 3.Bignum库
4.如果可以,请使用较小的数字

您没有那么多对象,对吗?然后使用以
1
开头的常规递增ID。如果您想通过更改ID阻止人们检索其他对象,请添加一个包含一些随机值的附加参数,然后您仍然可以使用适当的ID(也可以在数据库中作为主键)当用户试图修改URL时,他运气不佳,因为他不知道其他项目的随机字符串。如果这是一个id,为什么还要麻烦将其视为一个数字?把它当作一根绳子