2014-07-20 199 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