Répondre
floor()
arrondira un nombre à l'entier le plus proche.
EDIT: Comme indiqué par Mark ci-dessous, cela ne fonctionnera que pour les valeurs positives, ce qui est une hypothèse importante. Pour les valeurs négatives, vous voudrez utiliser ceil()
- mais vérifier le signe de la valeur d'entrée serait fastidieux et vous voudrez probablement utiliser l'idée (int) cast
de Mark ou TechnoP à la place. J'espère que cela pourra aider.
Je ne suis pas sûr si cela s'applique à PHP, mais (int) -cast pourrait donner un certain débordement ... Ah, http://stackoverflow.com/questions/300840/force-php-integer-overflow dit us: PHP max int est 2147483647. – osti
$y = 1.235251;
$x = (int)$y;
echo $x; //will echo "1"
Edit: En utilisant la distribution explicite (int) est le moyen le plus efficace de ce AFAIK. La conversion à (int) coupera les chiffres après le "." si le nombre est négatif au lieu d'arrondir au nombre inférieur négatif:
echo (int)(-3.75); //echoes "-3";
echo floor(-3.75); //echoes "-4";
le casting explicite est plus rapide que floor() en effet, cependant, lorsque de telles micro-optimisations sont de votre intérêt, alors vous ne devriez pas utiliser PHP en premier lieu. –
Je ne suis pas d'accord, si j'utilise PHP, j'ai déjà une grosse baisse de performance en utilisant un langage interprété. Il est toujours de ma responsabilité en tant que développeur, de ne pas introduire plus de décalage inutile. C'est aussi un problème de mémoire puisque floor() est un appel de fonction et par conséquent nécessitera de la mémoire supplémentaire. Selon la situation, l'impact sur les performances peut même être assez important. – selfawaresoup
$y = 1.234;
list($y) = explode(".", "$y");
Eh bien, si vous voulez gagner un concours d'obfuscation, ce serait le chemin à parcourir ... Drôle, mais mieux vaut ne pas l'utiliser pour de vrai ... – selfawaresoup
Si votre entrée ne peut être flotteurs positifs alors comme déjà mentionné les travaux de sol.
floor(1.2)
Toutefois, si votre entier pourrait aussi être négatif alors plancher ne peut pas vous donner ce que vous voulez: il arrondit toujours vers le bas, même pour les nombres négatifs. Au lieu de cela, vous pouvez utiliser int comme un autre message mentionné. Cela vous donnera le résultat correct pour les nombres négatifs et positifs.
(int)-1.2
Même avec une chaîne, floor() fonctionnera parce que les PPS dynamiques taper tant que la chaîne ne contient pas de caractères étranges en plus des chiffres et un ".". Firing up preg pour cela conduira juste à une performance lente et un gaspillage de mémoire. – selfawaresoup
@Techpriester: OK supprimé. Mais je pense toujours que vous devriez utiliser int, pas le sol si l'entrée pourrait être négative. Personne d'autre n'a encore considéré les contributions négatives, ce que je trouve dommage car l'affiche n'a pas dit que l'entrée doit être positive. –
@Mark: True. Je n'y ai pas pensé.J'ai posté (int) juste pour des raisons de performance :) – selfawaresoup
Vous pouvez utiliser un opérateur au niveau du bit.
Sans:
echo 49/3;
>> 16.333333333333
Avec "| 0" bitwise:
echo 49/3 | 0;
>> 16
- 1. Javascript supprimer les numéros après le point
- 2. Supprimer tout texte après un certain point
- 3. Supprimer automatiquement tous les fichiers après x-time
- 4. Ajouter tous les nombres positifs dans Excel
- 5. Comment supprimer tous les sujets dans ActiveMQ?
- 6. Comment supprimer tous les TEXT/Numbers entre (et) dans sqlite3?
- 7. Comment supprimer tous les liens d'une chaîne mixte avec php
- 8. Comment puis-je utiliser mod_rewrite pour tout supprimer après le? (point d'interrogation) dans une URL?
- 9. PHP Arrondir les nombres
- 10. Supprimer les espaces multiples avant et après Characters PHP
- 11. Supprimer le fichier après l'heure dans PHP
- 12. Comment ajouter des nombres après décimales en utilisant php
- 13. PHP Expression régulière pour supprimer tous les caractères autres que les chiffres et les périodes
- 14. Supprimer tous les espaces après ',' et faire la première lettre majuscule en CSV avec PHP
- 15. comment valider les nombres décimaux en PHP
- 16. Supprimer tous les enregistrements dans NSManagedObjectContext
- 17. Comment supprimer tous les travaux de l'imprimante
- 18. Comment supprimer/supprimer un point de montage dans Windows
- 19. trouver tous les nombres inférieurs à x dans un BST
- 20. Comment déterminer les cuboïdes d'un point sans les parcourir tous?
- 21. Comment supprimer tous les caractères d'une chaîne
- 22. Supprimer tous les caractères après le dernier - mais seulement si après - a quatre caractères
- 23. Supprimer tous les espaces dans QGridLayout
- 24. supprimer tous les objets de réseau NSMutable
- 25. PHP: ignore_user_abort (true) dans tous les scripts
- 26. somme totale de tous les nombres dans c: boucle forEach
- 27. Créer tous les répertoires jusqu'à un point?
- 28. Comment supprimer tous les gestionnaires d'événements Click dans Jquery
- 29. Comment supprimer tous les parrents sans enfants dans SQL?
- 30. SQL - Comment obtenir uniquement les nombres après la virgule?
le nombre peut-il être négatif? –