Je veux convertir la valeur flottante (par exemple: 1.0000124668092E + 14) en entier en php, quelle est la meilleure méthode pour cela dans php.output devrait être "100001246680920"
Que voulez-vous dire par conversion?
(int) $float
ou intval($float)
floor($float)
(bas) ou ceil($float)
(haut)round($float)
- a des modes supplémentaires, voir les constantes PHP_ROUND_HALF_...
* : le cast a une chance, que les valeurs flottantes ne puissent pas être représentées en int (trop grand ou trop petit) , f.ex. dans ton cas.
PHP_INT_MAX
: Le plus grand entier pris en charge dans cette version de PHP. Généralement int (2147483647).
Mais, vous pouvez utiliser les extensions BCMath ou GMP pour gérer ces grands nombres. (Les deux sont limités, il vous suffit d'activer ces extensions)
Utilisez round()
$float_val = 4.5;
echo round($float_val);
Vous pouvez également définir des paramètres pour la précision et le mode d'arrondi, pour plus d'informations
Mise à jour (selon votre question mise à jour):
$float_val = 1.0000124668092E+14;
printf('%.0f', $float_val / 1E+14); //Output Rounds Of To 1000012466809201
Il y a toujours intval () - Je ne sais pas si c'est ce que vous cherchiez ...
exemple: -
$floatValue = 4.5;
echo intval($floatValue); // Returns 4
Il n'arrondira pas la valeur à un entier, mais supprimera les chiffres décimaux et finaux et renverra l'entier avant la décimale.
Voici une documentation pour cela: - http://php.net/manual/en/function.intval.php
Utilisez les méthodes round
, floor
ou ceil
pour l'arrondir à l'entier le plus proche, avec intval()
qui est limité.
http://php.net/manual/en/function.round.php