Как показать ответы длиной более 1 десятичного знака в C ++ - PullRequest
1 голос
/ 12 декабря 2011

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

cout<<"Please type the data";

cin>> a;

z = a/4;

cout<<"The answer is"<< z;

Программа выдает точные числа, если я набираю число, которое делится на

ех.a = 8, z = 4

Но когда дело доходит до чисел, которые не делятся непосредственно на 4, он показывает результат, как показано

a = 54

b = 13 // реальный ответ - 13,5

Он игнорирует числа перед запятой.Как я могу включить все цифры перед десятичными знаками в моем результате (или по крайней мере до 4 десятичных знаков)?

Пожалуйста, помогите.

Ответы [ 3 ]

4 голосов
/ 12 декабря 2011

Ваша проблема в том, что вы определяете a и z как тип int.Вместо этого определите их как двойные, и ваша проблема будет решена.

    double a, z;

cout<<"Please type the data";

cin>> a;

z = a/4;

cout<<"The answer is"<< z;
2 голосов
/ 12 декабря 2011

используйте соответствующий тип:

double z = 0.;

z = 54/4.;

std::cout << z << std::endl;

ПРИМЕЧАНИЕ: 4. вместо 4, в противном случае приведенное выше деление будет просто целочисленным делением, а не делением с плавающей запятой.

Вы также можете убедиться, что происходит деление с плавающей запятой, приняв double / float от пользователя.

0 голосов
/ 12 декабря 2011
cout<<"The answer is"<< setprecision(2) << z;
...