J'ai besoin d'une fonction utilitaire qui prend une valeur entière (allant de 2 à 5 chiffres de longueur) qui arrondit au prochain multiple de 5 au lieu du multiple le plus proche de 5. Voici ce que j'ai obtenu:
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
Quand je cours round5(32)
, ça me donne 30
là où je veux 35.
Quand je cours round5(37)
, ça me donne 35
là où je veux 40.
Quand je cours round5(132)
, ça me donne 130
où je veux 135.
Quand je cours round5(137)
, ça me donne 135
où je veux 140.
etc...
Comment puis-je faire cela?
javascript
math
rounding
Amit Erandole
la source
la source
round5(5)
donner 5 ou 10?Réponses:
Cela fera le travail:
C'est juste une variation de l'arrondi commun
number
au multiple le plus proche de lax
fonctionMath.round(number/x)*x
, mais utiliser.ceil
au lieu de le.round
fait toujours arrondir au lieu de bas / haut selon des règles mathématiques.la source
const roundToNearestMultipleOf = m => n => Math.round(n/m)*m
Utilisation:roundToNearestMultipleOf(5)(32)
Cela arrondira le nombre au 5 le plus proche. Pour toujours arrondir au 5 le plus proche, utilisez
Math.ceil
. De même, pour toujours arrondir vers le bas, utilisezMath.floor
plutôt queMath.round
. Vous pouvez alors appeler cette fonction comme vous le feriez pour n'importe quelle autre. Par exemple,retournera:
la source
Comme ça?
la source
Je suis arrivé ici en cherchant quelque chose de similaire. Si mon nombre est —0, —1, —2, il devrait passer à —0, et s'il est —3, —4, —5, il devrait plafonner à —5.
J'ai trouvé cette solution:
Et les tests:
la source
Math.round
Cordialement Paul
la source
// rond avec précision
// arrondi à 5 avec précision
la source
La raison d'utiliser round est que l'entrée attendue peut être un nombre aléatoire.
Merci!!!
la source
peut être?
la source
int
n'est pas défini. Peut-être que vous vouliezparseInt
, mais ce ne serait pas nécessaire carMath.floor
renvoie un nombre.