浮点计算总是关闭1

2024-10-03 02:45:27 发布

您现在位置:Python中文网/ 问答频道 /正文

根据我的书输入5和6.5到这个函数应该返回 73.6901. 但我还是得到了72.6901。我知道这个公式很完美,我无法想象它还能是什么。浮点是否存在一定程度的不精确性,可能导致这种逻辑错误?你知道吗

import math

def area(n, side):
    area= (n * (side * side))/(
        4 * math.tan(math.pi/n))
    return area

def main():

    sideNumber = int(input("Enter the number of sides :"))
    sideLength = float(input("Enter the side: "))


    print("The area of the polygon is %f" %(area(sideNumber, sideLength)))


if __name__ == "__main__":
    main()

Tags: ofthe函数inputmaindefareamath
2条回答

正确答案是72.6901,你的书可能有错别字。你知道吗

浮点误差应该不会那么大。通常只有小数点后的许多小数位才重要。你知道吗

看起来是书中的错别字。我刚刚从mathwords中为同一事物转录了一个不同的公式:

def area2(n, side):
    r = 0.5 * side * (math.cos(math.pi / n) / math.sin(math.pi / n))
    return n * r * r * math.tan(math.pi / n)

我也得到72.690170。你知道吗

相关问题 更多 >