Информация об изменениях

Сообщение Re[5]: Исправленная версия от 11.09.2019 4:46

Изменено 11.09.2019 6:05 rg45

Re[5]: Исправленная версия
Здравствуйте, watchmaker, Вы писали:

R>>Ну вот, исправил: https://ideone.com/xGqir9

W>Всё равно иногда выводится по три символа после точки: например https://ideone.com/msG3Jo

Задокументируем как фичу.

Ну а если серьезно, то понятно, что происходит. Фактический параметр: 99999999999999.90625 — мантисса слишком велика, что вызывает появление погрешности в математических функциях. А так как число близко к целой степени десятки, функция digits_before_point выдает 15 вместо ожидаемых 14. Что поделаешь, все имеет свою погрешность и свою область применимости. И снова, с этим можно либо смириться, либо искать принципиально другие подходы к решению задачи (постпроцессинг строк, например) — в зависимости от того, что нам важнее, строгость соответствия требованиям или производительность.
Re[5]: Исправленная версия
Здравствуйте, watchmaker, Вы писали:

R>>Ну вот, исправил: https://ideone.com/xGqir9

W>Всё равно иногда выводится по три символа после точки: например https://ideone.com/msG3Jo

Задокументируем как фичу.

Ну а если серьезно, то понятно, что происходит. Фактический параметр: 99999999999999.90625 — мантисса слишком велика, что вызывает ожидаемую погрешность в математических функциях. А так как число близко к целой степени десятки, функция digits_before_point выдает 15 вместо ожидаемых 14. Что поделаешь, все имеет свою погрешность и свою область применимости. И снова, с этим можно либо смириться, либо искать принципиально другие подходы к решению задачи (постпроцессинг строк, например) — в зависимости от того, что нам важнее, строгость соответствия требованиям или производительность.