Как вывести вещественное число, отбросив лишние нули в части после запятой?
Например, имеется число 1.234, если вывести его через cout, то дробную часть мы потеряем, число округляется.
А для использования fixed setprecision(), нам требуется знать сколько ненужных нулей осталось в дробной части, то есть он не подходит. Работаем с типом double.
printf не предлагать, ибо я не знаю какая точность будет у числа и сколько таких нулей в дробной части.
Герман , приведи код, в котором ты пробовал вывести число, а так же - почему вывод не считается удовлетворительным.
Дай более развернутый ответ, почему не следует предлагать использовать printf.
Мне для подобных штук пришлось наладить свою библиотеку. И она умеет, например, такое.
1. Мы выводим 7 знаков. Но если число до 1e10 — выводим его как целое, даже с 9-ю знаками.
2. «Мягкая» точность — например, тысячные доли не выводить никогда, но если число большое, вроде 123456,7 — всё семь знаков, сотых тоже не выводить.
Для чего это нужно? Опиши задачу. Для большинства случаев достаточно стандартного преобразования. Но при необходимости можно ограничивать, например число символов, число значимых цифр и т.д
тогда и std::cout тоже не использовать потому что там под капотом используется snprintf для заполнения буфера вывода (в случае double) из 30 char.
или asprintf если больше 30 цифр.