来自mysql的Php双精度数和

时间:2014-02-28 13:41:16

标签: php mysql double

我在MySQL表中有一个数字,0.000102

然后将此数字乘以.8,得到0.0000816,但结果为8.16E-5

我的公式是:

function fixRendiconto($valore, $percent = 1){
    $valore = str_replace(",", ".", $valore);
    if($percent == 1 || $valore < 0){
        $elabora = ($valore == '') ? '0.00' : (double)str_replace(",", ".", $valore);
    }else{
        $elabora = ($valore == '') ? '0.00' : (double)str_replace(",", ".", $valore);
        $elabora = $elabora*(double)$percent;
    }
    return $elabora;
}

fixRendiconto(0.000102, .80);

如何获得结果0.0000816甚至更长的数字?

1 个答案:

答案 0 :(得分:1)

除了向人类展示之外的所有意图和目的,8.16E-5完全正常(这不是数字在内部存储的方式,fyi)。

如果要显示人类阅读的数字,请将其格式化为字符串:

number_format($elabora, 7); // 7 is the amount of decimal places

同样,这将返回一个字符串,这将使计算变得不可能(因此它应该仅用于显示,或者在所有计算之后等)。阅读更多:http://pl1.php.net/number_format