2010-08-31 11 views

risposta

7

È necessario moltiplicare per cento (in modo che i centesimi vengano arrotondati), arrotondare, quindi dividere per cento per ottenere nuovamente il prezzo corretto in dollari.

var dollars = 0.075; // 0.075 dollars 
var cents = dollars * 100; // ... is 7.5 cents 
var roundedCents = Math.round(cents); // ... but should really be 8 cents 
var roundedPrice = roundedCents/100; // ... so it's 0.08 dollars in the end 
2

Utilizzare Math.Round. Tratto da this articolo

var original=28.4531) 

// round "original" to two decimals 
var result = Math.round(original*100)/100; 
// returns 28.452) 

// round "original" to 1 decimal 
var result = Math.round(original*10)/10; 
// returns 28.53) 

// round 8.111111 to 3 decimals 
var result = Math.round(8.111111*1000)/1000; 
// returns 8.111 
4

JavaScript ha tre funzioni arrotondamento, che sono tutti membri dell'oggetto Math: round (giri alto o in basso, al numero intero più vicino), floor (arrotonda giù) e ceil (arrotonda). Sfortunatamente, tutti e tre solo intorno al numero intero più vicino. Tuttavia, è possibile moltiplicare prima l'importo in dollari (per ottenere i penny) e quindi utilizzare ceil per arrotondare al centesimo successivo;

var money = 0.075; 
var pennies = money * 100; 
money = Math.ceil(pennies)/100; 
+0

dovrebbe essere 'Math.round' ma l'idea è la stessa. Grazie! – mpen

+0

@Mark La tua domanda ha chiesto di arrotondare ...;) –

+0

Penso di aver chiesto come arrotondare * mezzo penny * su, che suppongo sia un po 'ambiguo per la metà inferiore;) – mpen

1
alert(0.755.toFixed(2)); 
+0

'0.075.toFixed (2)' is '0.07', non' 0.08' come richiesto. –

+0

Va bene che è incasinato. Ho digitato male il mio codice di prova con un extra 5 con javascript FF 3.5.11: alert ((0.075.toFixed (2)) + "\ n" + (0.0755.toFixed (2))); Grattandomi la testa su questo. lol – epascarello

+0

Molto strano http://jsbin.com/uyiho3 Bisogno di vedere cosa dice la specifica. :) – epascarello