Я думаю, что при установке python он помещает инструкции экспорта в файл ~ / .bash_profile. Поэтому, если вы больше не собираетесь использовать Python 2, вы можете просто удалить эту инструкцию оттуда. Псевдоним, как указано выше, также является отличным способом сделать это.
Вот как удалить ссылку из ~ / .bash_profile - vim ./.bash_profile - удалить ссылку (AKA что-то вроде: export PATH = "/ Users / bla / anaconda: $ PATH") - сохранить и выйти - источник ./.bash_profile для сохранения изменений
Найденный изящным решением:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Вы захотите сделать деление с плавающей точкой, и затем использовать функцию потолка, окружить значение к следующему целому числу.
Другая альтернатива должна использовать модификацию () функция (или '%'). Если существует ненулевой остаток, тогда увеличивают целочисленный результат подразделения.
Для записей == 0, решение rjmunro дает 1. Правильное решение 0. Тем не менее, если Вы знаете, что записи> 0 (и я уверен, что мы все приняли, recordsPerPage> 0), затем rjmunro решение дает корректные результаты и не имеет ни одной из водосливных проблем.
int pageCount = 0;
if (records > 0)
{
pageCount = (((records - 1) / recordsPerPage) + 1);
}
// no else required
Весь целочисленные математические решения будут более эффективными, чем любой из решений с плавающей точкой.
Целочисленное математическое решение, что предоставленный Ian хорош, но страдает от ошибки целочисленного переполнения. Принятие переменных является всем int
, решение могло быть переписано, чтобы использовать long
математика и избежать ошибки:
int pageCount = (-1L + records + recordsPerPage) / recordsPerPage;
, Если records
long
, ошибка остается. Решение для модуля не имеет ошибки.
Это должно дать Вам, что Вы хотите. Вы определенно захотите x объекты, разделенные на y объекты на страницу, проблема состоит в том, когда неровные числа подходят, поэтому если существует частичная страница, мы также хотим добавить одну страницу.
int x = number_of_items;
int y = items_per_page;
// with out library
int pages = x/y + (x % y > 0 ? 1 : 0)
// with library
int pages = (int)Math.Ceiling((double)x / (double)y);
Для C# решение состоит в том, чтобы бросить значения к двойному (как Математика. Потолок берет двойное):
int nPages = (int)Math.Ceiling((double)nItems / (double)nItemsPerPage);
В Java необходимо сделать то же с Math.ceil ().
Преобразование в плавающую точку и назад походит на огромную пустую трату времени на уровне процессоров.
решение Ian Nelson:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Может быть упрощен до:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, это не имеет водосливной ошибки, на которую Brandon DuRette указал, и потому что это только использует его однажды, Вы не должны хранить recordsPerPage особенно, если это прибывает из дорогой функции для выборки значения из файла конфигурации или чего-то.
Т.е. это могло бы быть неэффективно, если бы конфигурация fetch_value использовала поиск базы данных или что-то:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Это создает переменную, в которой Вы действительно не нуждаетесь, который, вероятно, имеет (незначительные) последствия памяти и просто очень вводит:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Это - вся одна строка и только выбирает данные однажды:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;
Альтернатива удалению ветвления при тестировании на ноль:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage * (records != 0);
Не уверен, будет ли это работать в C #, следует делать в C / C ++.