所以我想根据某些分组变量比较2个表中的求和字段。但是因为我不关心任何小于.000099的差异,所以在使用PROC COMPARE之前我将该字段四舍五入到第四个小数,但我仍然看到差异小于.000099。
我不想在PROC COMPARE中使用METHOD争论。
答案 0 :(得分:2)
尝试criterion
选项而不是method
:
proc compare data = x criterion = 0.0001;
可以在平等标准下找到here的一些讨论。
编辑:正如乔指出这隐含地设置method = relative
,所以为了适应问题method = absolute
也是必要的。但不幸的是,这不符合Jayesh的要求......
答案 1 :(得分:1)
如果您绝对无法更改METHOD
,那么您可以选择FUZZ
,这样您就可以隐藏小于模糊因子的差异。它并没有消除差异 - 它们仍然标记为不同 - 但它隐藏了差异(任何差异< FUZZ
将显示为零或缺少,具体取决于上下文)。然后,您必须对数据集或报告进行后处理,以便手动消除这些差异。
如果您在四舍五入后看到这样的差异,那么您可能会看到的是由浮点精度引起的问题。即使使用舍入, next 有效数字也会受到影响;你需要四舍五入到更重要的东西才能确保真正的&#39; .0001被压制。 [IE,舍入不能完美地工作,因为舍入的数字仍然必须存储为数字 - 并且因为你舍入到十进制值,而不是二进制,它不能保证正确的可存储数字。] < / p>