2013-07-09 11 views
8

Ho alcuni valori:non .toFixed per 0,0 *

var one = 1.0000 
var two = 1.1000 
var three = 1.1200 
var four = 1.1230 

e funzione:

function tofixed(val) 
{ 
    return val.toFixed(2); 
} 

questo ritorno:

1.00 
1.10 
1.12 
1.12 

LIVE

voglio dimensione massima dopo punto - 2, ma solo se n ! Umbers dopo per = 0. quindi vorrei ricevere:

1 
1.1 
1.12 
1.12 

come posso farlo?

+3

+ val.toFixed (2); ti dà un numero reale, tritato. – dandavis

risposta

7

Supponendo che si desidera String uscite

function myFixed(x, d) { 
    if (!d) return x.toFixed(d); // don't go wrong if no decimal 
    return x.toFixed(d).replace(/\.?0+$/, ''); 
} 
myFixed(1.0000, 2); // "1" 
myFixed(1.1000, 2); // "1.1" 
myFixed(1.1200, 2); // "1.12" 
myFixed(1.1230, 2); // "1.12" 
+0

Questo non funzionerà. -1 – Doorknob

+1

@Doorknob puoi fornire un esempio in cui ciò non funziona? –

+0

'myFixed (1200, 2); // 12' – Doorknob

5

Il modo "corretto" per farlo è la seguente:

return Math.round(num*100)/100; 

Se si desidera troncare a due cifre decimali (cioè 1.238 va a 1.23 invece di 1.24), usa floor invece di round.

Problemi correlati