【发布时间】:2014-07-18 22:50:01
【问题描述】:
我正在尝试在 Python 中编写一个函数,它以所需的步数为我提供标准化变量的值。我在舍入值和达到 1 时遇到问题。 因为我在以后的计算中需要这些值,所以仅仅用一定数量的小数打印它对我来说是不够的。相反,我需要 Python 在 0,0.00001,0.00002 等计算中使用它们,直到 1...
这是代码....有什么想法吗?我忘了提到我不想使用 for 循环....
只是为了说清楚...我使用递归函数来获取 u 0-> 1 的值,稍后将在berstain多项式中使用它来计算贝塞尔曲线/曲面。
from itertools import count
import sys
def b(u):
if u>=0 and u<=1:
u=count(0.0,0.001)
u=u.next
u=round(u.next(),4)
print(u)
b(u)
else:
sys.exit(0)
b(0)
【问题讨论】:
-
你能修复缩进吗?你为什么在自身内部调用 b(u)?
-
总是有范围和步数使得不可能准确地达到 1。在这些情况下,您必须更准确地指定您希望拥有的内容。
-
@user 2963623 我认为缩进现在可以了。我想将此函数用于类似 for 循环。当我弄清楚这一点时,我想在绘制贝塞尔曲线的代码中实现它(有问题相关对此,喜欢的可以看看)
-
@Achim 当然有,但我不确定是不是这样……或者是这样吗?在这种情况下,有什么解决办法吗?
标签: python decimal floating-accuracy