2009-11-05 30 views

Répondre

99

Diviser le nombre de 10, autour du résultat et multiplier par 10 à nouveau:

var number = 33; 
alert(Math.round(number/10) * 10); 
+0

Merci pour l'explication! – Abs

+7

Cette méthode fonctionne également avec 'Math.floor', si vous voulez éviter l'arrondi vers le haut –

+6

Vous pouvez utiliser la méthode Math.ceil pour arrondir. –

5

je avais besoin quelque chose de semblable, j'ai donc écrit une fonction. J'ai utilisé la fonction pour l'arrondi décimal here, et puisque je l'utilise aussi pour l'arrondi d'entier, je le définirai comme la réponse ici aussi. Dans ce cas, il suffit de passer le nombre que vous voulez arrondir et ensuite 10, le nombre que vous voulez arrondir à.

function roundToNearest(numToRound, numToRoundTo) { 
    return Math.round(numToRound/numToRoundTo) * numToRoundTo; 
} 
+0

J'aime que vous en ayez fait une fonction, mais cela donne-t-il des résultats différents de la réponse acceptée, et si non, pourquoi avez-vous utilisé une formule différente? – RozzA

+0

Il renvoie la même valeur, mais la formule est différente car elle facilite l'utilisation. Par exemple, si vous voulez arrondir au '.25' le plus proche, vous pouvez simplement utiliser' .25' comme deuxième argument. Si vous deviez utiliser les formules dans les autres réponses, vous devriez utiliser '4' comme second argument lorsque vous voulez arrondir à' .25', ce qui est contre-intuitif. – cjbarth

+0

pouvez-vous le prouver? Je viens de faire quelques tests dans la console et la réponse acceptée renvoie la bonne réponse en utilisant '.25' comme second argument - je l'ai fait dans une fonction de doublure' function roundTo (x, y) {return Math.round (x/y) * y} ' – RozzA

6

i est un entier.

Pour arrondir au plus proche multiple de 10 ie

11 devient 10
19 devient 10
21 devient 20

parseInt(i/10, 10) * 10; 

Pour arrondir à le multiple le plus proche de 10 soit

11 devient 20
19 devient 20
21 devient 30

parseInt(i/10, 10) + 1 * 10; 
+1

Je cherchais l'arrondi à plusieurs et votre code est absolument génial, je ne peux pas assez le faire. Merci! – andreszs

+0

Andrew: Merci beaucoup, j'apprécie votre commentaire :-) – CMP

Questions connexes