2014-07-20 198 views
0

該函數的結果是5.4 ...但我需要5.40。
這是一個簡單的問題,但我沒有(清潔)的想法來解決這個問題。Javascript - 四捨五入

JS

var test = round(-5.401826873479466,2); 

alert(test+' $'); // = 5.4 $ 

function round(number, decimals) { 
    return Math.round(number * Math.pow(10, decimals))/Math.pow(10, decimals); 
} 

FIDDLE http://jsfiddle.net/xMXPz/2/

回答

3

假設這是用於顯示字符串,那麼你需要toFixed

function round(number, decimals) { 
    return number.toFixed(decimals) 
} 

這會返回一個字符串。在JS編碼中,在5.45.40之間沒有區別。 Read more in the MDN

0

試試這個

var test = round(-5.401826873479466,2); 
test=test.toFixed(2); 
alert(test+' $'); 

function round(number, decimals)        { 

return Math.round(number * Math.pow(10, decimals))/Math.pow(10, decimals); 

}

+0

話又說回來,OP總是可以只用[* Number.prototype.toPrecision *](http://ecma-international.org/ecma-262 /5.1/#sec-15.7.4.7)。 – RobG