Comment arrondir un nombre à 10 près en php?
Disons que j'ai 23
, quel code utiliserais-je pour arrondir à 30
?
Comment arrondir un nombre à 10 près en php?
Disons que j'ai 23
, quel code utiliserais-je pour arrondir à 30
?
floor()
va baisser.
ceil()
va augmenter.
round()
ira au plus proche par défaut.
Divisez par 10, faites le plafond, puis multipliez par 10 pour réduire les chiffres significatifs.
$number = ceil($input / 10) * 10;
Edit: Je le fais depuis si longtemps ... mais la réponse de TallGreenTree est plus nette.
round($number, -1);
Cela arrondira $ nombre au 10 le plus proche. Vous pouvez également passer une troisième variable si nécessaire pour changer le mode d'arrondi.
Plus d'infos ici: http://php.net/manual/en/function.round.php
En fait, je cherchais une fonction pouvant arrondir à la variable la plus proche, et cette page revenait sans cesse dans mes recherches. Alors, quand j'ai finalement fini par écrire moi-même la fonction, j'ai pensé la poster ici pour que les autres puissent la trouver.
La fonction arrondira à la variable la plus proche:
function roundToTheNearestAnything($value, $roundTo)
{
$mod = $value%$roundTo;
return $value+($mod<($roundTo/2)?-$mod:$roundTo-$mod);
}
Ce code:
echo roundToTheNearestAnything(1234, 10).'<br>';
echo roundToTheNearestAnything(1234, 5).'<br>';
echo roundToTheNearestAnything(1234, 15).'<br>';
echo roundToTheNearestAnything(1234, 167).'<br>';
Est-ce que la sortie:
1230
1235
1230
1169
Il y a beaucoup de anwers dans cette question, probablement tous qui va vous donner la réponse que vous cherchez. Mais comme @TallGreenTree mentionne, il y a une fonction pour cela.
Mais le problème de la réponse de @TallGreenTree est qu'il n'est pas ronde, elle arrondit le plus proche 10. Pour résoudre ce problème, ajoutez +5
à votre numéro de compte afin de round up. Si vous voulez arrondir vers le bas, ne -5
.
Donc, dans le code:
round($num + 5, -1);
Vous ne pouvez pas utiliser l' round mode
pour les arrondis, parce que seules les tours jusqu'à des fractions et des nombres entiers pas.
Si vous voulez arrondir à l'entier supérieur 100
, vous devriez utiliser +50
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.