5258885 发表于 2019-11-9 15:00:13

python如何将无理数储存在变量中

a=eval(input('输入第1条边'))
b=eval(input('输入第2条边'))
c=eval(input('输入第3条边'))
if a+b<=c or a+c<=b or b+c<=a:
    print('不能组成三角形')
elif a==b==c:
    print('是等边三角形')
elif a==b or b==c or a==c:
    if a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2:
      print('等腰直角三角形')
    else:
      print('等腰三角形')
elif a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2:
    print('直角三角形')
else:
    print('一般三角形')
我输入1,1,根号2的话不是直角三角形,是不是根号二被约算了。如何解决

冬雪雪冬 发表于 2019-11-9 15:06:52

按照你的程序运算的。
输入第1条边1
输入第2条边1
输入第3条边2**0.5
等腰三角形

5258885 发表于 2019-11-10 14:28:56

冬雪雪冬 发表于 2019-11-9 15:06
按照你的程序运算的。

应该是等腰直角三角形才对

冬雪雪冬 发表于 2019-11-10 14:49:01

由于浮点运算存在误差,判断相等会出现错误,可以把差值的相对值小于某个数判断为相等。

5258885 发表于 2019-11-10 16:15:14

冬雪雪冬 发表于 2019-11-10 14:49
由于浮点运算存在误差,判断相等会出现错误,可以把差值的相对值小于某个数判断为相等。

那么这么弄呢
感谢

冬雪雪冬 发表于 2019-11-10 16:25:10

5258885 发表于 2019-11-10 16:15
那么这么弄呢
感谢

还有一个办法,用户输入边长的平方
页: [1]
查看完整版本: python如何将无理数储存在变量中