Вывод возвращается в строковом формате, а не в 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)