2012-08-15 105 views
0

我使用這個代碼:JQuery的長度舍結果

$("#total_percentage").text(
    (parseInt($("#capacity").text(), 10)/parseInt($("#total").text(), 10)) 
); 

我的問題是#total_percentage有時會很長的結果。

e.g:2.33333333333

有沒有一種方法來設置它,所以它向上舍/顯示的2個位數只有最大?

例如:2或10

+0

這是一個小問題的矯枉過正,但我​​強烈建議sugarjs:http://sugarjs.com/ – 2012-08-15 18:49:14

+0

你問有關顯示兩位數字後小數?在你的例子中:'2.33' – 2012-08-15 18:51:13

回答

1

收集使用Javascript數學庫。

$("#total_percentage").text(
    (Math.ceil(parseInt($("#capacity").text(), 10)/parseInt($("#total").text(), 10))) 
); 
+0

Math.ceil總是舍入(2.33333會顯示3,而不是2)。只要確保沒問題... http://www.w3schools.com/jsref/jsref_ceil.asp – 2012-08-15 19:14:42

1

您可以使用toFixed()

$("#total_percentage").text(
    (parseInt($("#capacity").text(), 10)/parseInt($("#total").text(), 10)).toFixed(2) 
); 

參考文獻:

1

如果你想顯示兩位數字小數點權,Math.toFixed是解決方案:

(2.33333333).toFixed(2) === "2.33" 

注意,這導致一個字符串,而不是數量。如果你想顯示2個位數Math.toPrecision是你想要什麼:

(2.33333333).toPrecision(2) === "2.3" 

再次,這會導致一個字符串。要返回一個數字(如果需要),可以使用parseFloat

最後注意到這兩個函數也會圍繞你的數字。例如:

(1.23456).toPrecision(4) === "1.235" 

如果要截斷你的電話號碼沒有四捨五入,你可以寫這樣的功能:

function truncate(num,precision) { 
    var muldiv = Math.pow(10,precision-1); 
    return Math.floor(num * muldiv)/muldiv; 
} 

truncate(1.23456,4) === 1.234 

下面是一個的jsfiddle展示每個方法:

---jsFiddle DEMO---