0
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

4

1 回答 1

0

您没有在问题中添加语言标签,但从语法来看,我认为这里是 Python。

首先,请注意 1563.7383不能int,但可以是float

您的问题在于您使用"%.4f" % total,它转换total为具有 4 个小数位的字符串。

您可能应该只total在您的函数中返回(即在整个程序中将其视为一个float,而不是四舍五入)。仅"%.4f" % total在实际输出值时才使用它。

或者,如果您绝对必须将函数中的值四舍五入并将其作为 a float,请考虑改用内置函数round()。您的使用情况将是return round(total, 4)

于 2018-08-30T02:48:05.987 回答