如何从Python数学函数获取小数?

1 投票
3 回答
1465 浏览
提问于 2025-04-17 04:23

我刚接触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)

结果都是一样的。如果我把a设为9.0就可以正常工作,但我想看看有没有什么方法可以不改变变量的情况下解决这个问题。

我知道这应该很简单,但我不知道该试什么。有什么建议吗?

谢谢

3 个回答

2

你在用两个整数进行除法运算,在Python 2.x中,这意味着进行的是整数除法。也就是说,结果会是一个整数。

如果你想要的是浮点数除法,也就是结果可以是小数,你只需要确保至少有一个参与除法的数是浮点数。比如:

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

或者

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

试着把其中一个(或者两个)参数转换成浮点数,而不是转换结果:

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

或者直接升级到Python 3,这个问题在那儿已经修复了:

>>> a = 9
>>> b = 13
>>> print ((a-b)/a)
-0.4444444444444444

顺便说一下,如果你想要在Python 3.x中进行整数除法,可以用//代替/。如果你感兴趣,可以查看关于这个变化的PEP

2

你需要说明你想要处理的是浮点数。

比如说:3.0/4.0 或者直接用 3.0/4,这样就会得到浮点数。现在你写的代码只是在做整数运算。

补充一下:你也可以用 float(3)/4 这种写法。

撰写回答