Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PuzanZero
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 6
#1

Неправильно работает cout для чисел типа double и float - C++

23.02.2013, 19:05. Просмотров 663. Ответов 3
Метки нет (Все метки)

Здравствуйте. Скажите, почему эта программа выводит на экран число 2, а не 2.5 ?
C++
1
2
3
4
5
6
#include <iostream.h>
int main()
{
double k=5/2;
cout << k <<"\n";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2013, 19:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильно работает cout для чисел типа double и float (C++):

2-ичное представление числа типа double или float? - C++
помогите разобратся,,,, плиз)) double a=1991.829; a==01000000 10011111 00011111 01010000 11100101 01100000 01000001 10001001; скажите...

Сделать вывод типа float в шаблоне вместо double - C++
Здравствуйте,уважаемые пользователи.Недавно начал знакомится с шаблонами, и заметил одну вещь которая не дает мне покоя.Суть вот в чем,...

std::cout в CodeBlocks неправильно работает? - C++
Ассоциативность у std::cout должна быть слева направо а этот пример в CodeBlocks доказывает противоположное. Добавляю в конец вектора два...

"Значение типа float* нельзя использовать для инициализации сущности типа float" - C++
#include &lt;math.h&gt; #include&lt;iostream&gt; #include &lt;iomanip&gt; #include&lt;conio.h&gt; using namespace std; ...

Как проверить вводилось ли число (типа double или float) в консоль - C++
Как проверить вводилось ли число (типа double или float) в консоль?

Функция для нахождения среднего арифметического пяти чисел типа float - C++
1. напишите программу, которая использует функцию для нахождения среднего арифметического пяти чисел типа float, вводимых с клавиатуры...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
23.02.2013, 19:21 #2
все дело в неявном преобразовании типов и специфике компилятора. в данном случае вы выполняете операцию a/b
Здесь у вас а=5 при чем "5" то есть целое число. таким образом компилятор делит целое число 5 на число 2 (у вас оно тоже целое, но это не принципиально). в результате получаем целую часть от деления и только после этого она помещается в переменную k.
напишите так и все будет работать правильно:
C++
1
2
3
4
5
6
7
#include <iostream.h>
int main()
{
double k=5.0/2;
cout<<k<<endl;
system("pause");
}
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
23.02.2013, 19:24 #3
Цитата Сообщение от PuzanZero Посмотреть сообщение
Здравствуйте. Скажите, почему эта программа выводит на экран число 2, а не 2.5 ?
C++
1
2
3
4
5
6
#include <iostream.h>
int main()
{
double k=5/2;
cout << k <<"\n";
}
Порядок выполнения программы такой: вначале происходит деление, а затем переменной К присваивается результат. 5 и 2 заданы как целочисленные, поэтому результат деления без дробной части. Нужно хотя бы 1 значение записать как double : 5.0 или 2.0
PuzanZero
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 6
23.02.2013, 19:27  [ТС] #4
Спасибо, Большое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 19:27
Привет! Вот еще темы с ответами:

Создать динамический массив, любого простого типа (например: int, long, float, double) - C++
1. Создать проект, который содержит консольную программу Win32. 2. Создать динамический массив, любого простого типа (например: int,...

Ошибка с циклом While. По разному работает с double и float, хотя должен бы одинаково - C++
Здравствуйте. Абсолютно не понимаю, почему double x; //--- x=0.1; while(x &lt;= 0.3) { //--- x+=0.2;

Расчет точности для float и double - C++
По какой формуле рассчитывается точность float и double в количестве знаков после запятой отностительно целой части? Чтобы вопрос был более...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.02.2013, 19:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru