使用JSON.parse解析数量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JSON.parse解析数量相关的知识,希望对你有一定的参考价值。

Dos它存在一个最大浮点数,小数点后有两位数,可以用JSON.parse解析而不会丢失精度?

例如:

JSON.parse('{"amount": 9999999999999.99}')

{金额:9999999999999.99} //不输(可能)

JSON.parse('{"amount": 99999999999999.99}')

{金额:99999999999999.98} //输了

答案

如果x是一个15位有效数字或更少的十进制浮点数,那么将x转换为javascript的Number类型然后将结果转换回具有相同有效位数的十进制浮点数就会产生x,只要数字为x在正常范围内。因此,从“.00”到“9999999999999.99”的小数点后面的两位数的所有小数都可以用小数点后的两位数进行解析,存储和重新格式化,结果将是原始数字。

存储的值通常不等于原始值。例如,当解析“.99”时,结果将正好是0.989999999999999911182158029987476766109466552734375。但是,存储的值将足够接近原始值,当转换回原始的数字位数时,恢复原始值。请注意,您必须知道原始的位数;它本身并不是Number值的一部分。

15是该属性的下限。可能存在一些指数值,所有16位十进制数字都可以在往返中存活。但是,由于99999999999999.99(16位)产生99999999999999.98,我们知道这不是其中一个间隔。

如果您想知道此往返属性首次失败的9999999999999.99和99999999999999.99之间的具体数字,您可能需要以计算方式进行搜索。它很多都不是一个易于通过数学属性直接计算的值。

以上是关于使用JSON.parse解析数量的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 JSON.parse(decodeURIComponent(staticString))?

jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data(示例代码

如何使用 JSON.parse() 显示正确的值?

无法使用 JSON.parse 解析来自 textarea 元素的有效 JSON

js怎么解析json数据

使用 JSON.parse 方法解析数据时 JSON 中位置 0 错误的意外令牌'