floating-point - (wx)Maxima:将“equal”与浮点数结合使用的最佳实践是什么?
问题描述
我正在处理具有以下形式的数据:
/* 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 ))
;但是,这种方法似乎不能很好地推广到人们不知道先验数量的数量级的情况。
是否有一些版本的equal
浮点数只检查一定的十进制精度?我检查了“数字函数”和“相等”的文档,但没有看到任何适用的内容(AFAICT)。
解决方案
推荐阅读
- python - 熊猫清理一列中的 1+1 值
- javascript - DC.js,crossfilter - 隐藏 0-value-bins / 组时的动态图表高度
- google-bigquery - 无论如何将现有数据/历史从firestore加载到bigquery?
- python - 如何从这个输出中减去或找到差异?
- cybersource - 我可以使用我的测试环境商家 ID 和密钥来测试 flex 缩微帖子吗?
- sql - 如何在 Hive Sql 中模拟循环?
- google-photos - iOS 版 Google 相册在哪里隐藏“助手”标签?
- opencart - 关于 Opencart robots.txt 的建议
- ffmpeg - ffmpeg - .m4a 输出的默认格式是什么?
- java - 按其内部另一个 LinkedHasmap 的值以降序对 LinkedHashMap 进行排序