这是一个相当广泛的问题,但我在R. R中复制了一个Excel模型,产生的结果与excel几乎相同,但在10 ^ -8的范围内总是存在微小的%偏差。我认为这是由于数值精度。该模型仅使用基本算术运算。 我的问题是:有一种简单的方法可以强制R使用与Excel相同的数值精度吗?
答案 0 :(得分:5)
可能不是。 R总是使用双精度(即8字节)浮点,并且似乎that's also what Excel uses。
如果您只是进行简单的算术,结果并不相同,这确实有点令人惊讶,但请注意,即使更改算术运算的顺序也会改变结果(即,浮点运算不是关联的:{{ 1}},所以如果算术是从左到右进行的,(a+b)+c != a+(b+c)
)。虽然this(可能只适用于Excel 2003)表示Excel偏离R和大多数其他数字程序使用的IEEE 754标准的点,但可能甚至不可能知道Excel正在做什么。
你可能能够通过从简单到更复杂的示例进行处理,查看分歧发生的位置,重新排列计算以避免问对于你/值得投入大量精力,你可能会更好地测试大致相等。
可以想象,导出到CSV的精度正在下降(例如,请参阅here)。