← Все вопросы

В чём разница abs, round и int при работе с дробными числами?

Задан 21 месяц назад550 просмотров3 ответа
13

Есть число -3.7. Когда применять abs, когда round, когда int? Постоянно путаю, что из них что делает.

3 ответа

24

Три разные задачи:

  • abs(x)модуль (убирает знак): abs(-3.7)3.7, тип не меняется.
  • int(x)отбрасывает дробную часть (к нулю, без округления): int(3.7)3, int(-3.7)-3.
  • round(x)математическое округление до ближайшего: round(3.7)4, round(-3.7)-4. С двумя аргументами — до знаков: round(3.14159, 2)3.14.
x = -3.7
print(abs(x))   # 3.7
print(int(x))   # -3  (отбросил .7)
print(round(x)) # -4  (округлил)

Главная разница int и round: int(2.9) это 2, а round(2.9) это 3.

Данил Джалагания Ещё round использует «банковское» округление: round(2.5) даёт 2, а не 3 — многих удивляет · 21 месяц назад
8

abs — знак убрать, int — отрезать дробь, round — округлить.

6

Для округления вниз/вверх всегда (а не отбрасывания к нулю) — math.floor и math.ceil, не путай с int.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект