JQuery раунд десятичного до .49 или .99 - PullRequest
2 голосов
/ 25 марта 2011

Я пытаюсь понять, как округлить десятичную дробь до .49 или .99.

Я нашел функцию toFixed(2), но не уверен, как округлить вверх или вниз.

В основном нужно добраться до ближайшего ценового пункта, поэтому, например, X.55 опустится до X.49, а X.84 - до X.99.

Ответы [ 4 ]

11 голосов
/ 25 марта 2011

Это не требует jQuery, но может быть сделано с простым JavaScript:

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

Обратите внимание также на случай, когда число будет округлено до 0 (price> 0,25), как если бывыход -0,01 в этом случае.

1 голос
/ 25 марта 2011

Если бы у меня был доллар каждый раз, когда 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;
};
0 голосов
/ 25 марта 2011

Это не требует jQuery. Вам просто нужен класс Math из javascript, а для округления потребуется дополнительное вычитание, так как округление даст ближайший десятичный знак

0 голосов
/ 25 марта 2011

Я думаю, что вы не можете округлить / исправить до определенного числа, вам нужно будет проверить / вычислить значение, которое может означать: округление до вычитания 1 или округление до 51 и вычитание 51.

...