我有一个非常简单的数值比较,其最大值失败。我打开了详细模式和调试模式,但看不到任何其他详细信息。是否需要指定一些内容(我为fpprec尝试了其他值,但没有用)。
(%i2) is(equal(18225979/30454181, 0.5984721441039565));
(%o2) false
只要参数等于十进制后的12位数字,我希望最大值返回true。在此先感谢您的解决方案和建议。 -布雷迪
答案 0 :(得分:2)
我认为您想要的是类似is(abs(x - y)/abs(y) < 1e-12)
的数字,其中x
和y
是有问题的数字。
is(equal(x, y))
被实现为is(ratsimp(x - y) = 0)
。这与对多个数字进行简单测试的方式有微妙的区别。我的建议是按照上述建议测试绝对相对差异。