【问题标题】:python: failing in computing floating numberspython:计算浮点数失败
【发布时间】:2014-12-06 03:52:44
【问题描述】:

我不知道我的方法在哪里失败。我有一个简单的公式:

y = a/(b*c)

价值观

a = 4.716380460979026e-06 b = 0.001849764416795974 c = 5.6596565531748315e-05

我的代码是:

a = 4.71628e-06
b = 0.00184
c = 5.65965e-05
y = a/(b*c)
print y

当用计算器“手动”计算时,我得到 ~166。

python 打印:

>>> 45.050781914

谁能帮忙?

【问题讨论】:

  • 你手动搞砸了计算。 47 / (18 * 56) ~= 0.0466
  • 注意一个是e^-5,一个是e^-6
  • 没关系。我的结果几乎完全偏离了几个数量级。你的还差得远。
  • 你说得对。我仍然想知道为什么我的 python 结果也关闭了?
  • 你的 Python 结果很好。

标签: python math floating-point algebra


【解决方案1】:

您在计算中使用了错误的基数。 xey 不是xey,是x10y .

4.716e-6 / (0.00184 * 5.65965e-5) ~= 166.59882

【讨论】:

  • 您能详细说明一下吗?
  • e 是自然数,2.71 什么的。科学记数法用于通过移动小数点将非常大或非常小的数字带到更合理的表示形式,这涉及到 10 的幂。科学记数法使用“e”或“E”,但它与 e 无关.
【解决方案2】:

您必须在计算器中输入错误。

谷歌同意python:

https://www.google.com/?gws_rd=ssl#q=4.71628e-06+%2F+(+0.00184+*+5.65965e-05+)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2022-12-31
    • 2018-08-29
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多