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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
opensuse2008
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 15
#1

double a=1/2; cout<<a;(a=0) что не так? - C++

23.09.2010, 10:47. Просмотров 1023. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
void main()
{
    double a=1/2;
    cout<<a;
}
выводит a=0;
использую 2008 студию.
почему округляет до целого? Как исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
23.09.2010, 10:50     double a=1/2; cout<<a;(a=0) что не так? #2
Код
double a=1.0/2.0;
opensuse2008
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 15
23.09.2010, 10:51  [ТС]     double a=1/2; cout<<a;(a=0) что не так? #3
а можно узнать, почему так просиходит?
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.09.2010, 10:52     double a=1/2; cout<<a;(a=0) что не так? #4
Цитата Сообщение от opensuse2008 Посмотреть сообщение
а можно узнать, почему так просиходит?
1/2 - это деление двух целочисленных значений. соответственно результатом будет также целочисленная переменная.
чтобы этого избежать надо либо явно указывать, что число вещественное, добавив .0, либо приводить типы (double)1/2.
oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
23.09.2010, 10:53     double a=1/2; cout<<a;(a=0) что не так? #5
автоматическое преобразование компилятором к целому числу
opensuse2008
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 15
23.09.2010, 10:53  [ТС]     double a=1/2; cout<<a;(a=0) что не так? #6
тему удалите тогда, или как ее удалить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2010, 11:10     double a=1/2; cout<<a;(a=0) что не так?
Еще ссылки по теме:

Неправильно работает cout для чисел типа double и float C++
C++ Оптимизация. Что быстрее работает: cout или printf
Форматированный вывод с округлением, что лучше: printf или cout? C++
C++ Что означает эта запись? int(*px)[5] = 0; cout << px;
C++ Что и в каких случаях лучше использовать: cerr, clog, cout ?

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
23.09.2010, 11:10     double a=1/2; cout<<a;(a=0) что не так? #7
opensuse2008, никого не надо удалять
Yandex
Объявления
23.09.2010, 11:10     double a=1/2; cout<<a;(a=0) что не так?
Ответ Создать тему
Опции темы

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