任何人都可以解释如何将指数数字舍入为小数,即1.5636078182346E+48
至2
和-1.6401906104806E+50
至2
。
示例代码: -
$string = "1.5636078182346E+48";
echo $float = (float) $string;
没有任何转换。而这样的代码
$string = "7.2769482308e+01";
$float = (float) $string;
正在运作。为什么?有什么不对?
答案 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,因为它的数字足够小,所以它不会自动转换为指数形式。