Я тестирую кратные 0,4 в Excel.
= MOD(1,2; 0,4)
возвращает 0,4, когда он должен вернуть ноль.
Я тестирую кратные 0,4 в Excel.
= MOD(1,2; 0,4)
возвращает 0,4, когда он должен вернуть ноль.
Причина в том, что Excel внутренне работает с числами с плавающей запятой.
Это означает, что 0,4 внутренне представляется как битовая последовательность справа от десятичной запятой, которая представляет 1/2, 1/4, 1/8, 1/16 и т.д., До примерно 1/(2 ^ 31).
Следовательно, все, что не является целым числом (и не является точно представимым с дробями, перечисленными выше), имеет связанную с этим ошибку округления; это относится и к каждому этапу расчета.
MOD(*,0.4)
- это только один пример, чтобы показать это (довольно вопиющий, я дам вам это).
По сути, вы не можете надежно использовать MOD
с нецелыми числами в качестве второго параметра. Вы должны умножить и разделить ваши данные соответственно, если это вариант (например, =MOD(10*x;10*m)/10
), или кодировать формулу MOD самостоятельно: =x-INT(x/m)*m