【问题标题】:Raising a base (which is a decimal) to a power yields false results将底数(小数)提高到幂会产生错误的结果
【发布时间】:2019-05-09 22:28:56
【问题描述】:

这是一个几何级数之和的计算器,我的问题是,如果底数 (r) 是小数并且被提升到任何幂 > 1,我会得到一个不正确的结果 5.5^2 是 25 它是 30.25

(对于你们那里的编辑,我不知道如何突出显示代码,为了将来的方便,我想知道如何,所以如果我得到有关如何执行此操作的说明,它会真的很有帮助)

我尝试将函数“float”分配给变量,假设如果 python 将变量视为小数,那么小数点后的内容可能也会被提高。

a1 = int(float(input("First Term in Sequence")))
r = int(float(input("Rate of Change")))
n = int(float(input("Number of Terms")))


def a(r,n):
    global rn
    r = float(r)
    n = float(n)
    rn = r**n
    return rn

我希望输出是正确的: 如 5.5^2 = 30.25

不是: 5.5^2 = 25

就好像代码不关心小数点后的内容

【问题讨论】:

    标签: python variables decimal calculator


    【解决方案1】:
    a1 = int(float(input("First Term in Sequence")))
    r = int(float(input("Rate of Change")))
    n = int(float(input("Number of Terms")))
    

    你为什么在这里把你的输入变成int

    如果您在此处输入了5.5,它将变为5。在此之后,即使您执行float(5),您仍然会得到5.0 而不是5.5

    所以你实际上是在计算 5.0 ** 2.0 == 25

    【讨论】:

    • 谢谢,我对 Python 和一般的编码还是很陌生,所以我没有发现同时存在 float 和 int 的问题。但现在我做到了,感谢它:D
    猜你喜欢
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 2016-01-23
    • 2021-09-09
    • 2015-11-17
    • 1970-01-01
    • 2021-12-06
    • 2020-07-17
    相关资源
    最近更新 更多