Python简单的浮点除法:不准确
问题描述:
所以我对编程非常陌生,但我正在研究一个简单的计算器。 当我启动程序并尝试了部分(尝试将2除以5)时,输出为3.0。这两个数字是花车,所以我不明白为什么这不起作用。其次,乘法也给出了错误的答案。Python简单的浮点除法:不准确
from math import *
while True:
print("Options:")
print("Enter 'add' to add two numbers")
print("Enter 'subtract' or '-' to subtract two numbers")
print("Enter 'multiply' to multiply two numbers")
print("Enter 'divide' to divide two numbers")
print("Enter 'quit' to end the program")
user_input = input(": ")
if user_input == "quit":
print ("Calculator stopped.")
break
elif user_input == "subtract" or "-":
num1 = float(input("num1: "))
num2 = float(input("num1: "))
print(num1 - num2)
elif user_input == "multiply" or "*":
num1 = float(input("num1: "))
num2 = float(input("num1: "))
print(">> ", num1 * num2," <<")
elif user_input == "divide" or "/":
num1 = float(input("num1: "))
num2 = float(input("num1: "))
sum = num1/num2
print(str(float(num1)/num2))
else:
print("Unknown command")
顺便说一句我使用Python 3.6.1。
答
这不会做你认为:
elif user_input == "subtract" or "-":
它的工作原理就好像是分组如下:
elif (user_input == "subtract") or "-":
不管user_input
的价值,这种情况将评估为True (因为"-"
是非空的,因此为真)并且将执行减法。
(试图除以2 5),输出为3.0
这是因为5减去2为3的代码中减去。
你想要更多的东西一样:
from math import *
while True:
print("Options:")
print("Enter 'subtract' or '-' to subtract two numbers")
print("Enter 'multiply' to multiply two numbers")
print("Enter 'divide' to divide two numbers")
print("Enter 'quit' to end the program")
user_input = input(": ")
if user_input == "quit":
print ("Calculator stopped.")
break
elif user_input in ("subtract", "-"):
num1 = float(input("num1: "))
num2 = float(input("num1: "))
print(num1 - num2)
elif user_input in ("multiply", "*"):
num1 = float(input("num1: "))
num2 = float(input("num1: "))
print(">> ", num1 * num2," <<")
elif user_input in ("divide", "/"):
num1 = float(input("num1: "))
num2 = float(input("num1: "))
print(num1/num2)
else:
print("Unknown command")
+1
更正代码,它的运行完美!感谢您的快速帮助! –
乘法给出错误的答案以及.. –