$abc=285083800;
$truit=10000000;$abc=$abc/$truit;得出的值是:28.508379999999998943849277566
而不是:28.5083800是一个软件的接口PHP,不知道软件经过什么处理弄的值精确到下面这么多位小数点
请问怎么写代码让值为28.5083800
哪为知道的大哥帮帮忙,直接给完整的代码,谢谢了

解决方案 »

  1.   

    $abc=285083800;
    $truit=10000000;$abc=$abc/$truit;
    echo number_format($abc,7,'.','');//28.5083800
      

  2.   

    <?php
    $abc = "28.508379999999998943849277566";        
    $float = substr($abc, 0, strpos($abc, '.')+8);
    echo round((float)$float, 5);
    // 28.50838
      

  3.   

    以上都是不对的php 本身就是有bug的你必须用 bc_match
      

  4.   

    这个接口当然是使用了BCMath系列函数来实现任意精度,而且$abc本身也只能是字符串类型。
    楼主的问题是如何四舍五入保留小数点到7位
      

  5.   

    楼主的代码都贴着,哪行看到用bc_match了?
      

  6.   

    echo sprintf("%.07f", $abc);
      

  7.   

    感觉number_format更方便一些。