Подтвердить что ты не робот

Как преобразовать значение float в integer в php?

Я хочу преобразовать значение float (например: 1.0000124668092E + 14) в Integer в php, лучший способ для этого в php.output должен быть "100001246680920"

4b9b3361

Ответ 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