Контролировать точность отображения для двойников

Есть простой способ в C ++ увеличить точность удвоения, которая даже:

Например

 double d = 3.6

было бы

d = 3.600 (adding 2 zeros)

этот d затем отправляется в строковый класс

std::to_string(d);

Вы можете спросить почему? Я использую графический интерфейс (gtkmm), и в текстовом виде каждое число должно иметь одинаковую длину.

Это результат, если длина не совпадает:

4.396       3.957       11
4.183       3.783       10
3.959       3.6     9
3.723       3.404       8
3.474       3.194       7
3.207       2.967       6
2.919       2.719       5

Можно ли увеличить десятичные дроби, то есть добавить дополнительные нули, когда значение является примитивом, или мне вместо этого придется манипулировать строкой?

РЕДАКТИРОВАТЬ: Я должен был быть более ясным — я не заинтересован в std :: cout. Вывод abow представляет графический интерфейс

1

Решение

Технически вы не меняете точность типа double, Чтобы добавить «лишние нули», если число слишком короткое, вы можете использовать std::stringstream следующее:

std::stringstream s;
double d = 3.6;
s << std::fixed << std::setprecision(3) << d;
std::string res = s.str();
std::cout << res;

Живая демо

Выше будет установить точность цифр в 3 цифры и печать 3.600,

3

Другие решения


По вопросам рекламы [email protected]