【发布时间】:2020-04-29 16:54:28
【问题描述】:
我正在做作业,是关于梯形规则的数值方法
def trapezoidalRule(F,a,b,n):
h = float(b-a)/n
f_sum = 0
for i in range(1, n, 1):
x = a + i * h
f_sum = f_sum + f(x)
return h * (0.5 * f(a) + f_sum + 0.5 * f(b))
def f(x):
return x**3
a = 2
b = 10
n = 512
print('%.16f' %trapezoidalRule(f, a, b, n))
输出是
2496.0058593750000000
我的问题是,如何在不使用 print('%.16f' %trapezoidalRule(f, a, b, n)) 的情况下获得这样的精度。我想将结果附加到列表中,具有这样的确切值..
我已经尝试谷歌它,但我没有发现与此问题相关的内容,如果我愿意,有人可以告诉我解决方案吗?
【问题讨论】:
-
如果你想在最后打印额外的 0-s,像现在这样格式化是你唯一的选择。如果您只想对数字进行四舍五入,请查看
round()函数 -
所以你是说我无法将确切的值附加到列表中?
-
您想将打印语句的值存储在列表中?
-
20 位比浮点数的实际精度高,所以这不是一个精确值,只是加了零的接近值。如果您想要更高的精度,请查看
decimal模块。 -
是的,准确的输出值@VishalUpadhyay