2014-09-20 4 views
2

В настоящее время я работаю над проектом для своего класса C++ и столкнулся с проблемой, которую я просто не могу понять самостоятельно.Проблема с преобразованием веса

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

Вот мой код:

#include <iostream> 
#include <iomanip> 
using namespace std; 

int main() 
{ 
    //Declarations 
    double kg = 0.0; 
    double lbs = 0.0; 
    double conversionRate = 2.2; 

    //INPUT 
    cout << "Enter Your Weight (kilograms): "; 
    cin >> kg; 

    //PROCESS 
    lbs = (kg * conversionRate); 

    //OUTPUT 
    cout << "Weight Entered: " << setprecision(2) << kg << " Kg" << endl; 
    cout << "Converts to: " << setprecision(2) << lbs << " lbs" << endl; 

    cout << "\n\n"; 
    system("pause"); 
    return 0; 
} 

Это выход я получаю на фунты:

enter image description here

Эти значения переменных при отладке:

enter image description here

Я не могу видеть m, чтобы выяснить, почему он выводит данные, которые показаны на скриншоте, и почему он не показывает десятичные разряды также на кг?

Любая помощь приветствуется!

ответ

2

Вам необходимо использовать фиксированный.

Либо сделать

cout.precision(2); 
cout << "Weight Entered: " << fixed << kg << " Kg" << endl; 
cout << "Converts to: " << fixed << lbs << " lbs" << endl; 

или более, как вы делали

cout << "Converts to: " << fixed << setprecision(2) << lbs << " lbs" << endl; 

Это выводит на:

Вес Вступил: 63,5028 enter image description here

There is a linked case here linked to this case

Cheers Stian

+1

Блестящий! Благодаря тонну. – Meta

1

Вы хотите сделать

< < соиЬ фиксированной < < < < showpoint setprecision (2) < < < < фунтов "фунты" < < епсИ;

+0

+1 отметьте этот как ответ. Я редактировал свой пост. –

Смежные вопросы