Javascript, использующий функцию потолка для значения меньше 1

Итак, у меня есть список элементов, и я хочу проверить, сколько страниц мне понадобится, если я хочу показать, скажем, 10 элементов на странице.

ie

220 должно дать мне 22 страницы

134 должно дать мне 14 страниц

Я использую функцию потолка, чтобы получить количество страниц

var pages = parseInt(items)/10;
alert("pages " +pages);
alert(Math.ceil(pages));

Проблема, с которой я сталкиваюсь, заключается в том, что если у меня есть 7 элементов, я ожидаю, что это даст мне 1 страницу. Однако я не получаю никакого вывода. Я заметил, что я получаю вывод только в том случае, если значение для страниц из

var pages = parseInt(items)/10;

больше 1 , как решить эту проблему?


person littledevils326    schedule 18.10.2013    source источник
comment
Я только что попробовал ваш код в консоли Chrome с items = 7, и он отлично работает — я получаю второй вывод 1. Можете ли вы воспроизвести свою проблему в JSBin?   -  person Bojangles    schedule 19.10.2013
comment
items действительно число? Попробуйте передать параметр системы счисления.   -  person elclanrs    schedule 19.10.2013
comment
Chrome, Firefox, не имеет значения — я пробовал тот же код в Firebug и все равно получаю 1   -  person Bojangles    schedule 19.10.2013
comment
@elclanrs да элементы - это число   -  person littledevils326    schedule 19.10.2013
comment
Нам нужна демонстрация, чтобы воспроизвести проблему, она работает нормально.   -  person elclanrs    schedule 19.10.2013
comment
Что значит я не получаю никакого вывода? Предупреждение по-прежнему отображается? Кроме того, используйте parseInt(items, 10) только для того, чтобы убедиться, что не происходит веселья с основанием.   -  person user2864740    schedule 19.10.2013
comment
@Bojangles Я только что реплицировал свой код в jsbin, и я получаю 1, но не когда запускаю его в Firefox.   -  person littledevils326    schedule 19.10.2013
comment
Затем вам нужно показать больше кода - items может быть не тем, что вы думаете, или что-то еще изменит ваш вывод.   -  person Bojangles    schedule 19.10.2013
comment
Разместите, пожалуйста, ссылку на jsbin   -  person Barmar    schedule 19.10.2013


Ответы (1)


Я думаю, что ваша проблема в другом. Рассмотрим следующие Math.ceil операции:

> Math.ceil(220/10)
22
> Math.ceil(134/10)
14
> Math.ceil(7/10)
1

Затем посмотрите на операцию, которую вы, возможно, обработали — строковую версию числа:

> Math.ceil(parseInt("7")/10);
1
> Math.ceil(parseInt(" 7")/10);
1
> Math.ceil(parseInt(" 7 ")/10);
1

Может показаться, что Math.ceil предоставляет 1, как и ожидалось, если только ваше значение 7 не искажено.

person Brian    schedule 19.10.2013