2013-07-09 37 views
8

我有几个值:.toFixed不是.0 *

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

我想点后的最大尺寸 - 2,但仅限于n !后umbers = 0 所以我想获得:

1 
1.1 
1.12 
1.12 

我如何能做到吗?

+3

+ val.toFixed(2);给你一个真正的数字,切碎。 – dandavis

回答

7

假设你想字符串输出

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

这不起作用。 -1 – Doorknob

+1

@门把手你能举一个例子吗?这不行吗? –

+0

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

5

“正确”的方式做到这一点如下:

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

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