show 2 chiffres max après la virgule flottante ... seulement si c'est un nombre à virgule avec plus de 2 float chiffres
dans mon application, j'ai fais quelques calculs et le résultat peut être flottant ou int
je veux vous montrer le résultat final avec deux chiffres après la virgule max ... si le résultat est un nombre à virgule
il y a deux options pour ce faire
number_format($final ,2);
et
sprintf ("%.2f", $final );
mais le problème, c'est ... si mon résultat final est un int comme 25
je me retrouve avec
25.00
ou si le résultat final est quelque chose comme 12.3
il me donne
12.30
et je ne veux pas que
est-il possible de formater un nombre pour afficher 2 chiffres après float point, SEULEMENT SI c'est un nombre à virgule avec plus de 2 chiffres après le point décimal ? ou dois-je vérifier avant de formater mon numéro ?
Vous devez vous connecter pour publier un commentaire.
imprime:
12.30
comme12.3
12.30
et12.3
, seulement entre"12.30"
et"12.3"
, mais vous travaillez avec unfloat
en entrée, pas unstring
, donc il n'y a aucun moyen de différencier les deux.Je pense qu'il n'est pas à court de dérivation pour elle.
Vérifier manuellement si il a 2 ou plus de chiffres après la virgule.
Comment savoir si il a moins de l'un ou zéro chiffres après la virgule ? Il suffit de multiplier par 10 et vérifier si c'est un entier. Si elle l'est, imprimer le nombre tel qu'il est. Si il est désormais utiliser '%.2f " pour l'imprimer.
Vous devez ajouter une condition si, si il a plus de 0 chiffres après le point. Je ne vois pas d'autre solution.
Une manière simple et rapide à faire.
Garder à l'esprit, que j'ai ajouté un autre chiffres après la virgule du nombre à l'aide de la number_format.
J'ai trouvé une autre option. Fonte à
float
à dépouiller les zéros de fin:Mais ces fonctions semble pour arrondir le nombre comme
round
:Donc, si vous ne voulez pas ce comportement, utilisez ceci:
Oui, vous devriez faire un peu de vérification. Par exemple vérifier si
ceil($number) > floor($number);
Si vous avez besoin spécifiquement de deux chiffres, qui va prendre plus d'efforts.Je n'aime pas cela.
23.3
devrait sortir23.3
Vous pouvez utiliser cet exemple
Essayer ci-dessous la fonction pour maintenir constante la 2 chiffres après le point décimal
dans le cas où vous souhaitez modifier le nombre de chiffres du changement AFTER_DESIMAL_DIGITS valeur