php-浮点数以指数形式显示

时间:2011-07-07 08:31:18

标签: php

有谁能告诉我为什么会这样,

$a  = 0.000022

echo $a // 2.2E-5

我想看到的是0.000022而不是2.2E-5

3 个答案:

答案 0 :(得分:16)

指数形式是每个(?)编程语言使用的内部形式(至少CPU以这种方式“看到”浮点数)。使用sprintf()格式化输出

echo sprintf('%f', $a);
// or (if you want to limit the number of fractional digits to lets say 6
echo sprintf('%.6f', $a);

有关格式参数的详细信息,请参阅Manual: sprintf()

答案 1 :(得分:2)

使用number_format()功能

echo number_format($a,6,'.',',');

结果为0.000022

答案 2 :(得分:1)

试试这个:

function f2s(float $f) {
    $s = (string)$f;
    if (!strpos($s,"E")) return $s;
    list($be,$ae)= explode("E",$s);
    $fs = "%.".(string)(strlen(explode(".",$be)[1])+(abs($ae)-1))."f";
    return sprintf($fs,$f); 
}