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

типы данных - C++

Восстановить пароль Регистрация
 
user1509
Сообщений: n/a
07.03.2011, 22:41     типы данных #1
C++
1
2
3
4
5
6
7
8
    int x1, x2;
    float summa;
    x1 = 5;
    x2 = 6;
 
    summa = (x1 + x2)/2;
    
    cout << summa << endl;
почему в результате 5, а не 5.5 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2011, 22:41     типы данных
Посмотрите здесь:

C++ типы данных
Типы данных C++
Типы данных C++
Типы Данных C++
типы данных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Artishok
ЧакЭ одобряЭ
 Аватар для Artishok
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
07.03.2011, 22:45     типы данных #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int main()
{
    int x1,x2;
    float summa;
    x1=5;
    x2=6;
    
    summa =(x1+x2)/2.0;
    cout<<summa;
}
user1509
Сообщений: n/a
07.03.2011, 22:56     типы данных #3
Цитата Сообщение от Artishok Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int main()
{
    int x1,x2;
    float summa;
    x1=5;
    x2=6;
    
    summa =(x1+x2)/2.0;
    cout<<summa;
}
Спасибо что показали как...
но хотелось бы всетаки объяснения, чтобы понять
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
07.03.2011, 23:00     типы данных #4
Результат x1 + x2 имеет тип float, при делении на 2(константа имеет целочисленный тип), тип будет int, а значит дробная часть пропадет. Если делить на 2.0( которая имеет дробный тип), то и результат будет тоже float, а значит всё будет ок.
Yandex
Объявления
07.03.2011, 23:00     типы данных
Ответ Создать тему
Опции темы

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