Как оставить два знака после запятой у всех выводимых ответов одним разом?

подскажите, как оставить только два знака после запятой у всех выводимых ответов функции? Например в этом.

import math as m
x = int(input('x: '))
def kvadrat():
    d = x * m.sqrt(2)
    p = x * 4
    s = (1 / 2) * d ** 2
    return (d, p, s,) 
print(kvadrat())

Округлять каждое значение отдельно считаю тратой времени, буду благодарен каждому за Вашу посильную помощь.


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

Автор решения: Tehnorobot

Попробуйте так:

return tuple(map(lambda x: round(x, 2), (d, p, s)))

Каждое значение из кортежа округляется и обратно возвращается в кортеж. Хотя, мне кажется, проще каждое округлить.

→ Ссылка
Автор решения: Klef

Возможно это поможет.

return tuple(map(lambda x: round(x, 2), (d, p, s)))

Пример вывода при x = 5:

(7.07, 20, 25.0)
→ Ссылка
Автор решения: Victor VosMottor

Более явно:

return tuple(round(i, 2) for i in (d, p, s))
→ Ссылка
Автор решения: jamyan

Еще можно сделать с проверкой на принадлежность типу float.

return tuple([round(i, 2) if isinstance(i, float) else i for i in (d, p, s)])

Можно применить форматирование (здесь все будет с двумя знаками после запятой).

return tuple(['%.2f' % i for i in (d, p, s)])
→ Ссылка