Python 浮动计算始终关闭1
根据我的书,在这个函数中输入5和6.5应该返回 73.6901. 不过我还是得到了72.6901分。我知道这个公式是完美的,我无法想象它还能是什么。浮点数是否存在一定程度的不精确性,可能导致此逻辑错误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
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)