php输出浮点数,丢失精度的问题

时间:2021-03-07作者:klpeng分类:IT综合浏览:472评论:0

今天输出一个从数据库里面查询的数据,居然没有完整显示出来,丢失了后四位,一路排查下来,发现是php有个配置项,叫做precision, 这个配置值管理了浮点数的精度输出,我们可以用ini_get('precision') 来获取这个值的设置,情况复现:

<?php
 echo ini_get('precision'); //我这里的环境是14位
 $a = -0.021740039999997407;
 echo $a; //输出的时候,后四位被截断了。

所以为了解决这种问题,我们可以有两种方式实现:

  1. 一种是使用ini_set 来调整 precision 的值
  2. 一种是使用sprintf 来设置输出的精度

第一种

<?php
 echo ini_set('precision',18);
 $a = -0.021740039999997407;
 echo $a;

第二种

<?php
$a=-0.021740039999997407;
echo sprintf("%.18f", $a);
打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢