2011-03-25 80 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; 
};