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
您没有在问题中添加语言标签,但从语法来看,我认为这里是 Python。
首先,请注意 1563.7383不能int
,但可以float
。
您的问题在于您对"%.4f" % total
的使用,它将total
转换为具有 4 位小数的字符串。
您可能应该只在函数中返回total
(即将其视为float
,不在整个程序中四舍五入(。只有在实际输出值时才使用"%.4f" % total
将其四舍五入。
或者,如果绝对必须将函数中的值四舍五入并使其作为float
,请考虑改用内置函数round()
。然后,您的使用情况将被return round(total, 4)