35

我有几个价值观:

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 

居住

我想要点 - 2 之后的最大尺寸,但前提是 for != 0 之后的数字。所以我想收到:

1
1.1
1.12
1.12 

我怎样才能做到?

4

4 回答 4

87

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

return parseFloat(val.toFixed(2));

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

于 2013-07-09T18:55:30.213 回答
21

假设您想要字符串输出

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"
于 2013-07-09T18:55:17.613 回答
11

“正确”的做法如下:

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

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

于 2013-07-09T18:57:07.550 回答
0

这个怎么样:

parseFloat((2199.004).toFixed(2)) // 2199
于 2021-06-21T09:08:59.063 回答