Python 浮动计算始终关闭1

Python 浮动计算始终关闭1,python,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(i

根据我的书,在这个函数中输入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()

看起来这是书中的一个打字错误。我刚刚为同一件事转录了一个不同的公式:


我还得到了72.690170。

看起来像是书中的打字错误。我刚刚为同一件事转录了一个不同的公式:


我还得到了72.690170。

正确答案是72.6901,你的书可能有打字错误


浮点精度不应该太高。通常只有小数点后的许多小数位才重要。

正确答案是72.6901,你的书可能有打字错误


浮点精度不应该太高。通常情况下,它只会影响小数点后的许多位。

不,像那样精确地偏离1的值不太可能是浮点错误。这更像是书中的一个打字错误。不要相信你读到的所有东西。不,像那样精确偏离1的东西不太可能是浮点错误。这更像是书中的一个打字错误。不要相信你读到的所有东西。你的理由是完美的,但你的不同公式只是在验证
sin(n)/cos(n)=tan(n)
。你的理由是完美的,但你的不同公式只是在验证
sin(n)/cos(n)=tan(n)
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)