将底数(十进制)提高到幂会产生错误的结果

时间:2019-05-09 22:28:56

标签: python variables decimal calculator

这是一个用于几何级数总和的计算器,我的问题是,如果基数(r)为小数并提高到任何幂> 1,我将得到错误的结果5.5 ^ 2是25,它是30.25 < / p>

(对于您在那里的编辑人员,我不知道如何突出显示代码,为了将来方便起见,我想知道如何做,如果我得到有关如何执行操作的说明,它将对您有帮助)

我尝试将函数“ 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

该代码几乎不干扰小数点后的内容

1 个答案:

答案 0 :(得分:4)

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