Simple: Comment trouveriez-vous la partie fractionnaire d'un nombre à virgule flottante en PHP? Par exemple, si j'ai la valeur 1,25, je veux retourner 0,25.Quel est le meilleur moyen d'obtenir la partie fractionnaire d'un float en PHP?
Répondre
$x = $x - floor($x)
Mes compétences PHP manquent mais vous pouvez moins le résultat d'un plancher du nombre initial
Si si le nombre est négatif, vous aurez à faire:
$x = abs($x) - floor(abs($x));
N'oubliez pas que vous ne pouvez pas faire confiance à l'arithmétique à virgule flottante pour être précis à 100%. Si vous êtes préoccupé par cela, vous voudrez regarder dans les fonctions BCMath Arbitrary Precision Mathematics.
$x = 22.732423423423432;
$x = bcsub(abs($x),floor(abs($x)),20);
Vous pouvez également pirater sur la chaîne vous
$x = 22.732423423423432;
$x = strstr ($x, '.');
La réponse fournie par nlucaroni ne fonctionnera que pour les nombres positifs. Une solution possible qui fonctionne à la fois positifs aussi bien que des nombres négatifs est:
$x = $x - intval($x)
Juste une note: typecasting à (int) serait plus rapide – Prasad
Toutefois, si vous avez affaire à quelque chose comme le bruit de Perlin ou d'une autre représentation graphique, la solution qui a été acceptée est correcte. Il vous donnera la partie fractionnaire du nombre inférieur.
ie:
.25
: 0 est un nombre entier ci-dessous, partie fractionnaire est 0,25-.25
: -1 est un nombre entier ci-dessous, partie fractionnaire est .75
Avec les autres solutions , vous répéterez 0 comme entier ci-dessous, et pire, vous obtiendrez des valeurs fractionnaires inversées pour tous les nombres négatifs.
Certaines des réponses précédentes sont partielles. Ceci, je crois, est ce que vous devez gérer toutes situations:
function getDecimalPart($floatNum) {
return abs($floatNum - intval($floatNum));
}
$decimalPart = getDecimalPart($floatNum);
$x = fmod($x, 1);
Voici une démo:
<?php
$x = 25.3333;
$x = fmod($x, 1);
var_dump($x);
Si ouptut
double(0.3333)
- 1. Quel est le meilleur moyen de gérer QUERY_STRING en PHP?
- 2. Quel est le meilleur moyen de faire throbber en C#?
- 3. Quel est le meilleur moyen de synchroniser 2 structures de données en PHP?
- 4. Quel est le meilleur moyen d'échapper à des chaînes Python en PHP?
- 5. Quel serait le meilleur moyen d'extraire la partie hôte d'un URL avec regexp?
- 6. J'ai déjà installé PHP, quel est le moyen le plus simple (le meilleur) pour installer GDLib?
- 7. Quel est le meilleur moyen de comparer plusieurs propriétés javabéennes?
- 8. Quel est le meilleur moyen de déployer des applications Web?
- 9. Quel est le meilleur moyen de fermer un thread WCF?
- 10. Quel est le meilleur moyen de communication interprocesseur sous Linux?
- 11. Quel est le meilleur moyen de copier une liste?
- 12. Quel est le meilleur moyen de redimensionner un objet BitmapData?
- 13. Quel est le meilleur moyen de générer une clé aléatoire dans PHP?
- 14. Ajout d'éléments à la liste des résultats en double. Quel est le meilleur moyen?
- 15. En C#, quel est le meilleur moyen de déterminer si une base de données est opérationnelle?
- 16. Quel est le meilleur: mysql_connect ou mysql_pconnect
- 17. Quel est le meilleur moyen de copier récursivement le contenu en C#?
- 18. Quel est le moyen le plus simple d'utiliser la commande HEAD de HTTP en PHP?
- 19. Quel est le meilleur moyen d'obtenir la sortie la plus utile d'oprofile?
- 20. Quel est le meilleur moyen de générer automatiquement des getters et setters pour une classe en php?
- 21. Quel est le meilleur moyen d'écrire cette fonction. Son obtient un fichier distant et copys localy, en php
- 22. Quel est le meilleur moyen de renvoyer plusieurs valeurs d'une fonction en Python?
- 23. Meilleur moyen de PHP à ASP.net?
- 24. Quel est le meilleur moyen de résoudre les conflits de noms en JavaScript?
- 25. Quel est le meilleur moyen de conserver un graphe d'objet Entity Framework en mémoire?
- 26. En R, quel est le meilleur moyen d'agréger des données de type chaîne?
- 27. Quel est le meilleur moyen de fusionner deux objets pendant l'exécution en utilisant C#?
- 28. Réponse, Résultat, Répondre, quel est le meilleur?
- 29. Quel est le meilleur moyen de retourner deux listes en C#?
- 30. Quel est le meilleur moyen d'écrire dans plusieurs journaux mis à jour en permanence?
cela ne fonctionnera pas quand vous traitez avec float nombre comme = 0,25 –
$ x = fmod ($ x, 1); – primo
@primo: mettez votre commentaire dans une réponse, vous méritez d'augmenter votre réputation pour cela! :) –