Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Alexander G, Вы писали:
vsb>>>А вы как думаете? Может я не прав и это норма в современных языках? Лично мне ближе подход C++, который показывает математически точное значение при заданной точности.
AG>>Современные тенданции — специально не печатать незначащие десятичные знаки, напечатать их лишь столько, чтобы при обратной конвертации из строки попасть туда же.
N>Это если запрос явно или неявно подчёркивает печатать ровно столько знаков, сколько надо для точного представления.
N>Запросы вида %<n>.f к этому не относятся аж никак.
Верно, что printf определён так, что печатать столько знаков, сколько получится из алгоритма конвертации.
Но я думаю, печатать столько знаков, сколько действительно есть, и не больше — более правильный подход, который должен применяться по умолчанию, если не вообще всегда.
Вряд ли printf поменяют. но все новые форматтеры уже без лишних знаков. C++17 to_chars даже.
AG>>Подход printf неправильный, устаревший. Следует использовать std::format.
N>Не у всех будет C++20 даже в пару ближайших лет.
Понимаю, я лишь указал к чему идёт.
Но кстати std::to_chars c С++17.
И библиотека
fmt портируема.