如果有4个零会出现乱码问题。
比如0.01*0.007=7.0E-5(乱码)
应该等于0.00007才对。不知道为什么php会出现这样的错误。注明:必须保留原位的小数点。不要舍去。应该怎么解决呢?

解决方案 »

  1.   

    1.这不是乱码,是科学计数法。
    2. round()函数可以指定小数点的位数
      $x = 0.0000722;
      $s = round($x,5);
      echo $s;
      

  2.   


    <?
    $x = 0.01*0.007;
    $s = round($x,5);
    echo $s?>
    按照你的做法结果还是7.0E-5,还有一点能否控制小数点超出5位才去控制5位内。
      

  3.   

    1.sprintf:
    <?php
    $x = 0.01*0.007;
    sprintf("%.7f",$x);
    ?>2.number_format:
    <?php
    $x = 0.01*0.007;
    $s  = number_format($x, 7, '.', ' '); 
    ?>
      

  4.   


    echo bcmul(0.01,0.007,5);//0.00007
      

  5.   

    好吧 来个恶心点的$s=0.01*0.007;
    echo number_format($s,5,'.','');
      

  6.   

    $s  = number_format($x, 6, '.', ' '); 
    结果就变成了0.000070如何把后面的0去掉变成0.00007
      

  7.   

    唔。后面不补0的话,你可以这样:<?php 
     $s = 0.01*0.00123;
     $k = sprintf("%.15f",$s);//指定小数后最大15位
     $result = rtrim($k,"0");//去掉末尾的0 
     echo $result;
    ?>
      

  8.   


    突然想到一个问题,为什么sprintf("%  .15f",$s);不会自动补空格呢
    sprintf("%.15f ",$s);也不可以