我想在php中将浮点值(例如:1.0000124668092E + 14)转换为Integer,php.output中最好的方法是“100001246680920”
答案 0 :(得分:42)
转换是什么意思?
(int) $float
或intval($float)
floor($float)
(向下)或ceil($float)
(向上)round($float)
- 还有modes,请参阅PHP_ROUND_HALF_...
常量* :cast有一定几率,浮点值不能用int表示(太大或太小),f.ex。在你的情况下。
PHP_INT_MAX
:这个PHP版本支持的最大整数。通常是int(2147483647)。
答案 1 :(得分:13)
使用round()
$float_val = 4.5;
echo round($float_val);
您还可以为more info
设置精度和舍入模式的参数更新(根据您更新的问题):
$float_val = 1.0000124668092E+14;
printf('%.0f', $float_val / 1E+14); //Output Rounds Of To 1000012466809201
答案 2 :(得分:3)
总是有intval()-不确定这是否是您想要的...
示例:-
$floatValue = 4.5;
echo intval($floatValue); // Returns 4
它不会将值四舍五入为一个整数,但是会去除小数点和尾随的数字,并返回小数点前的整数。
答案 3 :(得分:1)
使用round
,floor
或ceil
方法将其四舍五入为最接近的整数,以及有限的intval()
。
http://php.net/manual/en/function.round.php
答案 4 :(得分:1)
我只想向您警告:
>>> (int) (290.15 * 100);
=> 29014
>>> (int) round((290.15 * 100), 0);
=> 29015
答案 5 :(得分:1)
试试这个
<?php
$float_val = 1.0000124668092E+14;
echo intval($float_val);
?>