.toFixed不是.0 *

时间:2013-07-09 18:54:04

标签: javascript tofixed

我有一些价值观:

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

和功能:

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

这个回报:

1.00
1.10
1.12
1.12 

LIVE

我想在dot-2之后获得最大尺寸,但只有在!= 0之后的数字之后。 所以我想收到:

1
1.1
1.12
1.12 

我该怎么做?

4 个答案:

答案 0 :(得分:50)

.toFixed(x)返回一个字符串。只需将其解析为浮点数:

return parseFloat(val.toFixed(2));

http://jsfiddle.net/mblase75/y5nEu/1/

答案 1 :(得分:11)

假设您想要 String 输出

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"

答案 2 :(得分:6)

“正确”的方法如下:

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

如果要将其截断为两位小数(即1.238变为1.23而不是1.24),请使用floor代替round

答案 3 :(得分:0)

这个怎么样:

parseFloat((2199.004).toFixed(2)) // 2199