2010-08-12 12 views
24

Comment puis-je arrondir un nombre décimal en Javascript au plus proche 10? Mon calcul est aujourd'hui assez de déchets, il pourrait être le 2 heures de sommeil:/Arrondir l'argent au plus proche 10 dollars en Javascript

Quelques exemples de cas

$2823.66 = $2820 
$142.11 = $140 
$9.49 = $10 

Je comprends que je dois probablement une combinaison de Math.round/sol, mais je ne peux pas semblent obtenir le résultat attendu.

Toute aide/pointeur apprécié!

M

+0

Wow, 4 réponses identiques – titaniumdecoy

+0

alors que doit être la bonne façon de le faire :-) – paxdiablo

+3

Merci à tous pour vos réponses, je ne peux pas vraiment choisir la réponse à accepter alors je vais donner des points à Toby qui a le moins! :) – Marko

Répondre

70

Essayez

Math.round(val/10) * 10; 
9

Pour arrondir un nombre au 10 le plus proche, d'abord diviser par 10, puis le tour le plus proche 1, puis le multiplier par dix fois:

val = Math.round(val/10)*10; 

This page a quelques détails. Ils vont dans l'autre sens (par exemple, en arrondissant à 0,01 près) mais la théorie et la pratique sont identiques - multiplier (ou diviser), arrondir, puis diviser (ou multiplier).

12

Utilisez cette fonction:

function roundTen(number) 
{ 
    return Math.round(number/10)*10; 
} 



alert(roundTen(2823.66)); 
2
function round(number, multiplier) { 
    multiplier = multiplier || 1; 
    return Math.round(number/multiplier) * multiplier; 
} 

var num1 = 2823.66; 
var num2 = 142.11; 
var num3 = 9.49; 

console.log(
    "%s\n%s\n%s", // just a formating thing 
    round(num1, 10), // 2820 
    round(num2, 10), // 140 
    round(num3, 10) // 10 
); 
+1

Overkill, mais très utile. +1 – Josiah