JavaScript. Отбрасываем дробную часть.


К сожалению в JavaScript нету встроенной функции которая отбрасывает дробную часть числа. Но если подумать, то в целом это не проблема!

Достаточно над числом провести не сложные математические действия, в результате которых мы получим то, что нам нужно, а именно число без дробной части.

Например:

var x = 12.5432;
x = x - (x%1);

В результате x будет равен 12.

Также это можно реализовать и в php, а можно и так.

1 Star2 Stars3 Stars4 Stars5 Stars (голосов 18, в среднем: 4.39 из 5)
Loading ... Loading ...


  1. #1 kibal4iw - Август 2nd, 2010 at 20:55

    А не легче округлить? чем вычитать, делить?
    x = 12.5432
    alert(Math.floor(x));

  2. #2 nice - Август 2nd, 2010 at 21:50

    для того чтобы отбросить дробную часть а не округлить. Например нам нужно получить целое число -12.
    var x = -12.5432;
    alert(Math.floor(x));
    выведет -13, что не есть верным.

    для таких целей и писалась данная заметка!

  3. #3 kibal4iw - Август 2nd, 2010 at 22:01

    Да, с вашим примером соглашусь, универсально.
    Но можно попробовать еще так, правда только отрицательные округляет правильно:
    x = -12.6432;
    alert(Math.ceil(x));

    Когда положительное выдает 13. Все дело в том что округляет до целого в большую сторону:

  4. #4 Kink - Февраль 13th, 2011 at 11:02

    Math.floor(x – .5)

  5. #5 Роман - Апрель 19th, 2011 at 09:45

    А как же стандартная функция??

    a = 12.6432;
    alert(a.toFixed(2));
    //выведет 12.64

    Также работает и с отрицательными:

    a = -12.6432;
    alert(a.toFixed(2));
    //выведет -12.64

    Все есть в JavaScript, просто нужно найти :)

  6. #6 Александер - Июль 7th, 2011 at 13:33

    Math.floor и Math.ceil всё равно лучше чем этот пример.

  7. #7 urh - Февраль 25th, 2012 at 20:06

    alert(37.7.toFixed()) = 38

  8. #8 ano - Март 22nd, 2012 at 23:02

    12.5432<<0; //12

  9. #9 v - Апрель 20th, 2012 at 10:11

    alert(-3.14|0) = -3

  10. #10 McCrack - Май 17th, 2012 at 10:55

    Почему бы не испоьзовать стандартную функцию parseInt() ?
    Все же спасибо за альтернативный метод. может где-то пригодится

  11. #11 az - Январь 14th, 2013 at 18:39

    -12.345^0; //-12

  12. #12 Anonym - Август 26th, 2013 at 13:58

    Почему стандартный ParseInt не подходит?!)

  13. #13 Naza - Ноябрь 1st, 2013 at 12:03

    console.log([~~2.95, ~~2.501, ~~2.13]);

  14. #14 д - Декабрь 14th, 2013 at 02:01

    Ха) Дурацкий способ.
    Самый быстры и лаконичный:
    var a = 4.15893234|0; // a == 423

  15. #15 Romancho - Март 11th, 2015 at 05:05

    Доктор, спасибо. Ваш способ очень помог – точно такая же проблема была, что нельзя округлять, а только отбрасывать визуально дробную часть.

  16. #16 Андрей - Июль 25th, 2016 at 13:29

    Все-таки эта функция есть, хоть не совсем: Math.floor хоть и предназначена для округления (в принципе это одно и тоже), но отлично справляестся с задачей получить целую часть числа. Правда это работает только для положительных чисел

(will not be published)

Spam Protection by WP-SpamFree Plugin

  1. No trackbacks.