2011-03-25 77 views
1

我正在努力研究如何将小数点舍入为.49或.99。jQuery将小数点四舍五入为.49或.99 ​​

我找到了toFixed(2)函数,但不知道如何舍入或舍入。

基本上需要达到最接近的价格点,所以例如X.55会下降到X.49和X.84会上升到X.99。

+0

阅读[类似概念](http://stackoverflow.com/questions/477892/in-jquery-whats-the-best-way-of-formatting-a-number-to-2-decimal-places) – diEcho 2011-03-25 10:56:19

回答

10

这不需要jQuery的,但可以用普通的JavaScript来实现:

Math.round(price*2)/2 - 0.01 

注意也考虑其中数字会得到四舍五入到0(price> 0.25)的情况下,因为这将产生-0.01在这种情况下。

+1

Very好的解决方案 – 2011-03-25 10:57:03

+0

这是一种享受。好一个!我会确保在你指出的时候考虑-0.01的可能性。 – diggersworld 2011-03-25 11:09:04

0

我的事情你不能圆/固定到一个特定号码,您将需要检查/ caclulate的价值,这可能意味着:围捕然后减去1或围捕,再减去51

0

这并不需要jQuery的。你只需要Math类从JavaScript也四舍五入需要一些addtional减法,因为四舍五入会给最近小数

0

如果我有一美元的jQuery做的事情比他们需要更钝,每次...

window.round = function(num) { 
    cents = (num * 100) % 100; 
    if (cents >= 25 && cents < 75) { 
     //round x.25 to x.74 -> x.49 
     return Math.floor(num) + 0.49; 
    } 
    if (cents < 25) { 
     //round x.00 to x.24 -> [x - 1].99 
     return Math.floor(num) - 0.01; 
    } 
    //round x.75 to x.99 -> x.99 
    return Math.floor(num) + 0.99; 
};