【发布时间】:2022-12-03 13:39:38
【问题描述】:
程序应该取一个整数和一个 x 的因子并计算多项式 a_nx^n+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+ ... a_2x^2+a_1x+a_0,其中每个 a_i 都是 x 的相应幂的系数。
基本上,多项式 3x^4+2x^3+x+5 可以表示为整数 32015,因为 x^2 系数为 0。然后由 x 值对其进行评估。但是,该程序不会接受第一个整数的小数作为输入,而是希望所有小数都包含在答案中。
我已经编写了大部分程序。
while True:
try:
number = list(reversed(input()))
if int("".join(number)):
break
except:
print("Invalid Input")
while True:
try:
x = float(input())
break
except:
print("Invalid Input")
degree = len(number)
result = 0
for i in range(degree):
result += int(number[i]) * pow(x,i)
print(result)
然而,对于输入 341 和 -2.9,程序期望
218.11999999999998
但正在接收
218.11999999999995
我怎样才能阻止答案中的小数点四舍五入?
【问题讨论】:
-
似乎是浮点运算错误。我会对浮点数做更多的研究。