ios 在json解析过程中浮点型字符串出现精度丢失问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 在json解析过程中浮点型字符串出现精度丢失问题相关的知识,希望对你有一定的参考价值。

参考技术A 在解析的时候遇到了当有两位小数字符串时, 会出现小数点后面突然多出了很多位小数. 比如后台返回数据 为 9.88 ,解析过后却变成了 9.880000000000001 或者 9.799999999999999 ,这是因为浮点型字符串在解析过程中出现精度丢失.

对解析过后的浮点字符串进行修正, 修正方法如下

php json_encode 函数造成浮点类型数据出现精度问题

在php 7.1.* 版本,在使用过程中发现 浮点类型 数据经过 json_encode 之后会出现精度问题。
在php 5.6.*上不会放生

$data = [
    ‘a‘ => ‘100‘,
    ‘b‘ => 10,
    ‘c‘ => 0.1
];

echo json_encode($data);

输出:

{
"a":"100",
"b":10,
"c":0.10000000000000001
}

建议:就是将 float 转为 string 类型。

by:LiYY

以上是关于ios 在json解析过程中浮点型字符串出现精度丢失问题的主要内容,如果未能解决你的问题,请参考以下文章

关于json解析float数据精度的问题

c复习过程随笔二

iOS数据解析精度丢失

IDL中数字的精度问题:需要定义一个浮点型数组,如【40411323.654,42583654.878】并进行运算。

请问浮点型数据在计算机是怎么存储的

OC、swift数据JSON序列化后,浮点型数据丢失的问题