Подозреваю, что там всё равно ожидаются погрешности. Но нельзя же такие погрешности для таких функций допускать.
Вот ещё код, ответ закомемнтирован. Что я делаю не так?
Код:
fprintf('%20d\n', 1e17-123); % 99999999999999872
fprintf('%20d\n', 100000000000000000-123); % 99999999999999872
Питон ведёт себя более предсказуемо, хотя на синусах спотыкается быстрее.
Код:
print(100000000000000000 - 123) // ответ такой, как и ожидалось 99999999999999877
-- 15.06.2024, 18:21 --Если у кого-то стоит Octave и если не лень, проверьте, пожалуйста, приведённые примеры и примеры с синусами.
-- 15.06.2024, 18:42 --Судя по всему, дело в допустимой точности, которую нельзя изменить, 16-му символу уже нельзя доверять. Интересно, в Octave точно так же?