strval - ¿Cómo convertir valor flotante a entero en php?
string to float php (4)
Quiero convertir el valor flotante (Ej .: 1.0000124668092E + 14) a Integer en php, ¿cuál es el mejor método para esto en php.output debe ser "100001246680920"
¿Qué quieres decir con convertir?
- casting *:
(int) $float
ointval($float)
- truncando:
floor($float)
(abajo) oceil($float)
(arriba) - rounding:
round($float)
- tiene modes adicionales, veaPHP_ROUND_HALF_...
constantes
* : el lanzamiento tiene alguna posibilidad, que los valores flotantes no pueden representarse en int (demasiado grande o demasiado pequeño), f.ex. en tu caso.
PHP_INT_MAX
: el mayor entero admitido en esta compilación de PHP. Por lo general, int (2147483647).
Sin embargo, podría usar BCMath o las extensiones GMP para manejar estos grandes números. (Ambos están limitados, solo necesitas habilitar estas extensiones)
Siempre hay intval (): no estoy seguro de si esto es lo que buscabas ...
ejemplo: -
$floatValue = 4.5;
echo intval($floatValue); // Returns 4
No redondeará el valor a un entero, sino que eliminará los dígitos decimales y finales, y devolverá el entero antes del decimal.
Aquí hay algo de documentación para esto: - http://php.net/manual/en/function.intval.php
Use los métodos round
, floor
o ceil
para redondearlo al entero más cercano, junto con intval()
que está limitado.
Utilizar round()
$float_val = 4.5;
echo round($float_val);
También puede configurar param para el modo de precisión y redondeo, para modes
Actualización (de acuerdo a su pregunta actualizada):
$float_val = 1.0000124668092E+14;
printf(''%.0f'', $float_val / 1E+14); //Output Rounds Of To 1000012466809201