2011-01-28 69 views
3

使用toFixed喜歡如下給出:jQuery的 - toFixed但不toFixed

var a=0.5, b=1, c=1.5; 
console.log(a.toFixed(), b.toFixed(), c.toFixed()); 
// 0.5 1.0 1.5 

然而,當它是一個整數,我只希望它回到 「1」。

幫助!

+2

http://stackoverflow.com/questions/1393332/javascript-tofixed-function – 2011-01-28 06:47:34

+1

這個問題其實跟jquery沒有關係。 toFixed被內置到JavaScript中。 – greggreg 2011-01-28 06:52:20

回答

2

你可以使用正則表達式來刪除尾隨.0,如果它存在:

Number.prototype.safe_toFixed = function (x) { 
    var that = this.toFixed(x); 
    return that.replace(/\.0$/, ''); 
} 
0

你可以使用split()if條件:

var digit = 1.2 
    var ret = digit.toFixed(1); 
    var intValue = ret.split('.'); 
    if(intValue[1] == 0){ 
     digit = intValue[0]; 
    } 
1

這是我沒有和它每次工作。

var x= Number(54.03).toFixed(1); 

    if(Math.floor(x) == x) { 
    x = Math.floor(x); 
    } 

alert(x); 

我只是比較兩種類型,看看他們是否匹配。如果他們這樣做,那麼我知道可能有或沒有額外的零。無論哪種方式,我只需將(小區)或下(樓層)四捨五入,即可得到整數,而不會產生煩人的小數和零。