为什么
=floor((189-0.9*201)/(0.9))
是8?
正确答案是9
这导致了巨大的问题以及数小时的调试和令人头疼的事情
如您所见,这可能会导致很大的累积误差。
那是因为 Google Sheet 在 Javascript 中运行。
Javascript代码:
Math.floor(((189-0.9*201)/(0.9)))
产量也为8。
那是因为
(((189-0.9*201)/(0.9))) is 8.999999999999993
由于浮动误差精度。
因此,你可以这样做:
=floor(round((189-0.9*201)/(0.9), 9))
消除此类错误的一种方法是尽可能多地使用整数。 显然这可能很乏味。
这个方程
=floor((1890-9*201)/(9))
确实可以在谷歌表格中解析为9。