Проверить, является ли число целым

Делаю калькулятор на Python. Сделал так, чтобы можно было писать числа в виде десятичных дробей, но ответ тоже получается в виде десятичной дроби, даже если число целое (например, 5.5 + 1.5 у меня получается не 7, а 7.0). Как сделать так, чтобы число округлялось, но только в случаях, где оно должно быть округлённым?


Ответы (2 шт):

Автор решения: Airat Galiullin

Для того чтобы в Python выводить числа без десятичной точки, если они целые (например, 7 вместо 7.0), можно использовать простую проверку с помощью метода .is_integer().

Вот пример реализации:

def format_result(result):
    if result.is_integer():
        return int(result)
    else:
        return result

# Пример использования
a = 5.5
b = 1.5
result = a + b
print(format_result(result))  # Выведет: 7 (а не 7.0)

Как это работает:

  • Метод .is_integer() проверяет, является ли число целым (без дробной части).
  • Если число целое, то оно приводится к типу int, иначе возвращается с десятичной частью.
→ Ссылка
Автор решения: Stanislav Volodarskiy

Используйте формат g: 'f{x:g}'. Питон будет печатать значение как можно "проще":

$ python
Python 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
@>>> print(f'{5.4 + 1.4:g}')
6.8
@>>> print(f'{5.5 + 1.5:g}')
7
→ Ссылка