PHP将Exponent四舍五入为

时间:2015-04-28 09:08:31

标签: php

任何人都可以解释如何将指数数字舍入为小数,即1.5636078182346E+482-1.6401906104806E+502

示例代码: -

$string = "1.5636078182346E+48";
echo $float  = (float) $string;

没有任何转换。而这样的代码

$string = "7.2769482308e+01";
$float  = (float) $string; 

正在运作。为什么?有什么不对?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找round(),可以像这样使用它:

$float  = (float) "1.5636078182346e+48";
echo round($float, -48);

echo "<br>";

$float = (float) "-1.6401906104806E+50"; 
echo round($float, -50);

//output:
//2.0E+48
//-2.0E+50

第一个参数是要舍入的浮点数,第二个参数是小数点后的数字数(负数表示它将舍入更大的数字,即如果使用-2则1234变为1200)

此处的文档:http://php.net/manual/en/function.round.php

你的第二个例子打印的数字没有e + xx,因为它的数字足够小,所以它不会自动转换为指数形式。