2015-02-02 5 views
1

у меня есть код, который показывает результат в таком виде: примерДисплей правильный результат целых

Amount:   10 
    Total Amount: 200 
    Tax:    30 
    Net Balance:  2000 

и мое желание, чтобы показать результат, такие как тип математики начинают с правой стороны и с 2 ноль (00) после десятичной точки. Пример

Amount:   10.00 
    Total Amount: 200.00 
    Tax:    30.00 
    Net Balance: 2000.00 

Я использую двойную Int для него, но на самом деле я не знаю, как установить получившееся количество начать с правой стороны с последовательностью и с точкой и нулями.

+2

Попробуйте [форматирование] (http://www.arachnoid.com/cppt utor/student3.html). –

ответ

0

Вам нужно сделать что-то вроде этого:

std::cout.precision(2); 
std::cout << "Tax:   " << std::setw(8) << std::fixed << float(30) << std::endl; 
std::cout << "Net balance: "<< std::setw(8) << std::fixed << float(2000) << std::endl; 
+0

Я получил подсказку, спасибо –

3

Просто используйте

double v = 123.45; 

printf("%5.2f",v); 

Укажите ширину (5 в моем случае) и точность (2) требуется.

Редактирование: количество полей указывается как ширина и число цифр в прецизионной части, которые должны упоминаться после . в printf(). Взгляните на приведенные ниже результаты.

double v = 123456.45; 
    printf("%3.2f\n",v); 
    printf("%10.2f\n",v); 
    printf("%11.2f\n",v); 
    printf("%12.2f\n",v); 

Выход:

123456.45 
123456.45 
    123456.45 
    123456.45 
+0

Будет ли это позаботиться о выравнивании? –

+0

, пожалуйста, уточните код на C++? @Gopi –

+0

@SouravGhosh Вы можете указать ширину, чтобы выровнять выходной результат – Gopi

4

Вы можете объединить несколько параметров из <iomanip>:

std::cout << std::fixed; // formatting floating-point numbers 
std::cout << std::setprecision(2); // number of floating-point digits 
std::cout << std::setw(10); // width of the whole output string 
std::cout << std::right; // padding to the right