我对python有点新鲜,似乎无法弄清楚我做错了什么。
a = 9
b = 13
print ((a-b)/a)
-1
但在我的计算器上,正确的答案是-0.444444444(意思是'a'比'b'低约45%)。 如何显示几位小数?
我试过
print Decimal((a-b)/a)
print float((a-b)/a)
两者都有相同的结果。它是有效的,如果我做一个= 9.0但我想看看有什么我可以做而不改变变量。
我确信这很容易,但我不知道该尝试什么。有什么建议吗?
由于
答案 0 :(得分:4)
尝试将一个(或两个)参数转换为float,而不是结果:
print ((a-b)/float(a))
或者只是升级到已解决此问题的Python 3:
>>> a = 9
>>> b = 13
>>> print ((a-b)/a)
-0.4444444444444444
顺便说一句,如果您在Python 3.x中想要整数除法,则可以使用//
代替/
。如果您有兴趣,请参阅PEP有关此更改的信息。
答案 1 :(得分:2)
您需要指定要对浮点数进行操作。
例如:
3.0/4.0
或3.0/4
只会给你浮点数。现在它只是执行整数运算。
编辑:您也可以使用float(3)/4
答案 2 :(得分:2)
您正在对两个整数操作数进行除法,而在Python 2.x中,这意味着整数除法。也就是说,结果是一个整数。
你需要所谓的浮点除法。要强制执行此操作,您只需要将除法中的至少一个操作数设置为浮点数。例如:
print ((a-b)/float(a))
或
print (float(a-b)/a)