2010-08-12 11 views
24

Come posso arrotondare un numero decimale in Javascript al 10 più vicino? La mia matematica è piuttosto spazzatura oggi, potrebbe essere il sonno due ore:/Soldi tondi fino a 10 dollari più vicino in Javascript

Alcuni casi campione

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

Capisco probabilmente ho bisogno di una combinazione di Math.round/piano ma non posso sembra ottenere risultato atteso.

Qualsiasi aiuto/indicazioni apprezzato!

M

+0

Wow, 4 risposte identiche – titaniumdecoy

+0

Poi che deve essere il modo giusto per farlo :-) – paxdiablo

+3

Grazie a tutti per le loro risposte, non posso davvero scegliere quale risposta accettare, quindi darò dei punti a Toby che ha il minimo! :) – Marko

risposta

70

Prova

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

Per arrotondare un numero al più vicino 10, primo dividerlo per 10, poi intorno al più vicino 1, poi moltiplicarlo per 10 nuovamente:

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

This page ha alcuni dettagli. Esse vanno dall'altra parte (ad esempio arrotondando al più vicino 0,01) ma la teoria e la pratica sono identiche - moltiplicare (o dividere), arrotondare, quindi dividere (o moltiplicare).

12

Usare questa funzione:

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, ma molto utile. +1 – Josiah