2012-08-15 100 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---