Ошибка округления функции Excel mod

Ошибка округления функции Excel mod

Я тестирую числа, кратные 0,4, в Excel.

=MOD(1,2;0,4)

возвращает 0,4, хотя должен возвращать ноль.

решение1

Причина в том, что 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.

Связанный контент