从python数学函数获取小数?

时间:2011-10-15 21:13:28

标签: python

我对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但我想看看有什么我可以做而不改变变量。

我确信这很容易,但我不知道该尝试什么。有什么建议吗?

由于

3 个答案:

答案 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.03.0/4只会给你浮点数。现在它只是执行整数运算。

编辑:您也可以使用float(3)/4

答案 2 :(得分:2)

您正在对两个整数操作数进行除法,而在Python 2.x中,这意味着整数除法。也就是说,结果是一个整数。

你需要所谓的浮点除法。要强制执行此操作,您只需要将除法中的至少一个操作数设置为浮点数。例如:

print ((a-b)/float(a))

print (float(a-b)/a)