【问题标题】:Arithmetics is broken in Python? [duplicate]算术在 Python 中被破坏了? [复制]
【发布时间】:2016-04-28 11:22:54
【问题描述】:

当我做这个计算时 2*(5+5/(3+3))*3 我在 Python (2.7) 中得到 30。 但看起来2*(5+5/(3+3))*3等于35。 有人能告诉我为什么 python 给我的答案是 30 而不是 35? 我用 JavaScript、Lua 和 Mac Calculator 进行了测试,结果显示为 35。

为什么Python会计算错误?

http://ideone.com/yiFJxS

【问题讨论】:

  • 有趣的是,Python 3 产生 35 ...
  • / 在 Python 2 中始终是整数除法。
  • 那是因为5/6 在 python 2 中产生 0 并且其他人将其评估为十进制输出
  • @DanielRoseman:那么 Python 3 中修复了什么? / 将其参数强制为浮点数?
  • 注意:它是python 2.7

标签: python python-2.7 math arithmetic-expressions


【解决方案1】:

发生这种情况是因为 5/(3 + 3) 评估为 0。您需要将它们中的任何一个用作浮点数。

【讨论】:

    【解决方案2】:

    始终假设这是您正在做的事情而不是整个编码语言的问题!

    它在 Python shell 中对我来说很好用。 35 是预期的答案,35 是我们得到的!最有可能是你的结果或错误类型/你错过了一些评论。这是从上面复制粘贴您的代码。

    edit:谁更容易出错,个人?还是大众?奥卡姆剃刀。在这种情况下,我假设他使用的是 3 而不是 2.7,这导致了正确的假设,因为它在 3 中确实有效。

    【讨论】:

    • 如果你总是认为自己有问题,那么你永远不会发现语言中的错误。
    猜你喜欢
    • 2011-02-14
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2016-08-16
    相关资源
    最近更新 更多