如何强制除法为浮点数?除法一直向下舍入为 0?

新手上路,请多包涵

我有两个整数值 ab ,但我需要它们在浮点数中的比率。我知道 a < b 我想计算 a / b ,所以如果我使用整数除法,我总是会得到 0 和 a 的余数。

我如何强制 c 成为以下 Python 2 中的浮点数?

 c = a / b


在 3.x 中,行为相反;请参阅 为什么整数除法会产生浮点数而不是另一个整数? 相反,3.x 特定的问题。

原文由 Nathan Fellman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
2 个回答

在 Python 2 中,两个整数相除产生一个整数。在 Python 3 中,它产生一个浮点数。我们可以通过从 __future__ 导入来获得新行为。

 >>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663

原文由 Michael Fairley 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以通过执行 c = a / float(b) 转换为浮动。如果分子或分母是浮点数,那么结果也将是。


一个警告:正如评论者所指出的,如果 b 可能不是整数或浮点数(或代表一个的字符串),这将不起作用。如果您可能正在处理其他类型(例如复数),则需要检查这些类型或使用不同的方法。

原文由 Steve Trout 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题