提问人:Rax Adaam 提问时间:10/18/2021 更新时间:10/18/2021 访问量:112
(宽)Maxima:在浮点数中使用“equal”的最佳实践是什么?
(wx)Maxima: what are the best practices for using `equal` with floats?
问:
我正在处理具有以下形式的数据:
/* initial value */
xi:-8$
/* intermediate value */
a:-0.2$
/* final value */
xf:8$
/* step size */
dx:0.1$
/* first list of values */
x1:makelist(i,i, xi, a, dx)$
/* second list of values */
x2:makelist(i, i, a, xf, dx)$
然后
is(equal(last(x1), first(x2)));
返回。false
我想避免这个问题的最简单方法是在给定的示例中定义 ;但是,我想知道如果一个人无法控制数据,可以使用哪些策略?dx = 1/10
我考虑过类似的东西;然而,这种方法似乎并不能很好地推广到人们先验地不知道数量数量级的情况。is(equal( floor(last(x1)*10)/10, floor(first(x1)*10)/10 ))
是否有某个版本的for浮点数仅检查特定的十进制精度?我检查了“数字函数”和“相等”的文档,但没有看到任何适用的内容 (AFAICT)。equal
答: 暂无答案
评论
float_equal(val1, val2, precisicion)
equal_up_to_error(val1, val2, error)
fpprec
fpprec