Как преобразовать значение float в integer в php?
Я хочу преобразовать значение float (например: 1.0000124668092E + 14) в Integer в php, лучший способ для этого в php.output должен быть "100001246680920"
Ответы
Ответ 1
Что вы подразумеваете под преобразованием?
- литье *:
(int) $float
или intval($float)
- усечение:
floor($float)
(вниз) или ceil($float)
(вверх)
- округление:
round($float)
- есть дополнительные режимы, см. PHP_ROUND_HALF_...
константы
*: у кастинга есть шанс, что значения float не могут быть представлены в int (слишком большие или слишком маленькие), f.ex. в вашем случае.
PHP_INT_MAX
: наибольшее целое число, поддерживаемое в этой сборке PHP. Обычно int (2147483647).
Но вы можете использовать BCMath или расширения GMP для обработки этих больших чисел, (Оба ограничены, вам нужно только включить эти расширения)
Ответ 2
Используйте round()
$float_val = 4.5;
echo round($float_val);
Вы также можете установить параметр для режима точности и округления, для подробнее
Обновление (согласно вашему обновленному вопросу):
$float_val = 1.0000124668092E+14;
printf('%.0f', $float_val / 1E+14); //Output Rounds Of To 1000012466809201
Ответ 3
Используйте методы round
, floor
или ceil
, чтобы округлить его до ближайшего целого числа, а также intval()
, который ограничен.
http://php.net/manual/en/function.round.php
http://php.net/manual/en/function.ceil.php
http://php.net/manual/en/function.floor.php