首页 » Web前端 » phpround精度技巧_php71 运用json_encode 精度损失问题

phpround精度技巧_php71 运用json_encode 精度损失问题

访客 2024-11-30 0

扫一扫用手机浏览

文章目录 [+]

$data['balance']=0.09;

$data['intransitba']=0.01;

phpround精度技巧_php71 运用json_encode 精度损失问题

$data['totalbalance']=$data['balance']+$data['intransitba'];

phpround精度技巧_php71 运用json_encode 精度损失问题
(图片来自网络侵删)

打印出来

Array ( [balance] => 0.09 [intransitba] => 0.01 [totalbalance] => 0.1 )

{"balance":0.09,"intransitba":0.01,"totalbalance":0.09999999999999999}

json_encode 后数据就会涌现精度问题

找下缘故原由

首先剖析

1、由于做事器有两个php版本,再老的版本上同样的代码是可以的

以是疑惑和php版本高了有关系

找缘故原由

PHP 7.1.x在编码双精度值时开始利用代替精度。
由于从精度到serialize_precision用法的变革。

PHP7.1后php.ini里的serialize_precision默认为17,低于15就会避免问题发生。

办理办法:

1、ini_set('serialize_precision', 14);

ini_set('precision', 14);

2、利用round 规范返回精度round( $data['intransitba']+$data['balance'], 2 );

标签:

相关文章

房山第一探寻历史文化名区的魅力与发展

房山区,位于北京市西南部,历史悠久,文化底蕴深厚。作为北京市的一个重要组成部分,房山区的发展始终与首都的发展紧密相连。房山区积极推...

Web前端 2025-02-18 阅读1 评论0

手机话费开钻代码数字时代的便捷生活

我们的生活越来越离不开手机。手机话费作为手机使用过程中的重要组成部分,其充值方式也在不断创新。手机话费开钻代码应运而生,为用户提供...

Web前端 2025-02-18 阅读1 评论0

探寻专业奥秘如何查询自己专业的代码

计算机科学已成为当今社会不可或缺的一部分。掌握一门专业代码对于个人发展具有重要意义。面对繁杂的学科体系,如何查询自己专业的代码成为...

Web前端 2025-02-18 阅读1 评论0