Вывод возвращается в строковом формате, а не в int. Например: функция возвращает "1563.7383" вместо 1563.7383

def polysum(n,s):
    import math
    r = math.pi/n
    area = ((0.25)*n*(s**2))/ math.tan(r)
    per = n*s
    total = area + (per**2)
    return ("%.4f" % total)

Вывод возвращается в строковом формате, а не в int. Например: функция возвращает "1563.7383" вместо 1563.7383

1 ответ

Вы не добавили языковой тег в свой вопрос, но, судя по синтаксису, я предполагаю, что это Python.

Во-первых, обратите внимание, что 1563.7383 не может быть int, но это может быть float,

Ваша проблема в использовании вами "%.4f" % total, который преобразует total в строку с 4 знаками после запятой.

Вы должны, вероятно, просто вернуться total в вашей функции (то есть рассматривать это как float, без округления, по всей вашей программе). Только округлите, используя "%.4f" % total когда вы фактически выводите значение.

В качестве альтернативы, если вам абсолютно необходимо округлить значение в вашей функции и иметь его как float рассмотрите возможность использования встроенной функции round() вместо. Ваше использование будет тогда return round(total, 4)

Другие вопросы по тегам