Целочисленная функция пола C++

Я хочу реализовать самую большую целочисленную функцию. ["Самая большая целочисленная функция" является вполне стандартное имя для того, что также известно как функция пола.]

int x = 5/3;

Мой вопрос с большими числами, могла там быть потеря точности, поскольку 5/3 произведет двойное?

Править: Самая большая целочисленная функция является целым числом, меньше чем или равным X. Пример:

4.5 = 4
4 = 4
3.2 = 3
3 = 3

Что я хочу знать, что 5/3 собирается произвести двойное? Поскольку раз так у меня будет потеря точности при преобразовании в интервал.

Надежда это имеет смысл.

7
задан ShreevatsaR 12 April 2010 в 13:56
поделиться

4 ответа

Вы потеряете дробную часть частного. Так что да, чем больше число, тем выше относительная точность, например, по сравнению с 5000/3000 .

Однако 5/3 вернет целое число, а не двойное. Чтобы заставить его делиться как двойное, введите тип делимого как static_cast (5) / 3 .

8
ответ дан 6 December 2019 в 12:47
поделиться

Целочисленное деление дает целочисленные результаты, поэтому 5/3 равно 1, а 5% 3 равно 2 (оператор остатка). Однако это не обязательно верно с отрицательными числами. В исходном стандарте C ++ -5 / 3 могло быть либо -1 (округление до нуля), либо -2 (нижний предел), но было рекомендовано -1. В последнем проекте C ++ 0B (который почти наверняка очень близок к окончательному стандарту) это -1, поэтому поиск пола с отрицательными числами сложнее.

4
ответ дан 6 December 2019 в 12:47
поделиться

5/3 всегда будет давать 1 (целое число), если вы сделать 5,0 / 3 или 5 / 3,0 результат будет двойным.

3
ответ дан 6 December 2019 в 12:47
поделиться

Поскольку в C и C++, как уже говорили другие, / - это целочисленное деление, оно вернет int. в частности, оно вернет пол двойного ответа... (C и C++ всегда усекают) Итак, в принципе, 5/3 - это именно то, что вам нужно.

Это может быть немного странно в отрицательных числах, так как -5/3 => -2, что может быть или не быть тем, что вы хотите...

1
ответ дан 6 December 2019 в 12:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: