например, я получаю область 6 для треугольника, мне нужно, чтобы мой вывод показал 006.000
я знаю, что setprecision поможет сократить количество десятичных разрядов до трех, но как мне поставить нули перед моими решениями?
это то, что у меня есть
CTriangle Sides (3,4,5);
cout << std::fixed << std::setprecision(3);
cout << "\n\n\t\tThe perimeter of this tringle is = " << Sides.Perimeter();
cout << "\n\n\t\tThe area of the triangle is = " << Sides.Area();
cout << "\n\n\t\tThe angle one is = " << Sides.Angleone();
cout << "\n\n\t\tThe angle two is = " << Sides.Angletwo();
cout << "\n\n\t\tThe angle three is = " << Sides.Anglethree();
cout << "\n\n\t\tThe altitude one of the triangle = " << Sides.Altitudeone();
cout << "\n\n\t\tThe altitude two of the triangle = " << Sides.Altitudetwo();
cout << "\n\n\t\tThe altitude three of the triangle = " << Sides.Altitudethree();
с выходом
The perimeter of this triangle is = 12.000
The area of the triangle is = 6.000
The angle one is = 90.000
The angle two is = 36.870
The angle three is = 53.130
The altitude one of the triangle = 2.400
The altitude two of the triangle = 6.667
The altitude three of the triangle = 3.750
но мне нужно, чтобы все ответы были в этой форме XXX.XXX, независимо от того, каковы мои решения. (потому что значения будут меняться)
любая помощь приветствуется, спасибо!
Использование можно использовать набивка а также заполнение манипуляторы:
std::setfill('0'); // is persistent
//...
cout << std::setw(7) << value; // required for each output
С помощью std::internal
, std::fixed
, std::setfill
, std::setw
а также std::setprecision
от iomanip и связанные заголовки, вы можете сделать:
std::cout << std::fixed << std::setfill('0') << std::internal << std::setprecision(3);
std::cout << std::setw(7);
std::cout << 12.34f << "\n";
и получить желаемый результат. Смотрите это в прямом эфире на Coliru!
Смотрите «формат»: Форматирование строки и ввода / вывода (современный C ++)
Функция printf может сделать это для вас, посмотрите на документы:
http://www.cplusplus.com/reference/cstdio/printf/
Ваш случай несколько уникален, потому что:
(это не полные фрагменты кода, извинения)
Точность относится только к форматированию с плавающей запятой:
$ printf("%03.3f\n", 6)
> 6.000
А отступ слева применяется только к целочисленному форматированию:
$ printf("%03.3d\n", 6)
> 006
Удачи, надеюсь, вы можете взять его отсюда