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

Неправильное приведение типов или как? - C++

Восстановить пароль Регистрация
 
Fredd
0 / 0 / 0
Регистрация: 14.06.2011
Сообщений: 17
17.06.2011, 16:59     Неправильное приведение типов или как? #1
Короче вот код
C++
1
2
3
4
5
6
7
8
9
void CMyDialog::OnBnClickedButtonEdit()
{
        double number ;
CString t;
number= (t_f+t_o+t_m+t_d+t_b+t_i+t_s)/7; 
t.Format(_T("%d"), number);
AfxMessageBox(t);
    // TODO: Add your control notification handler code here
}
переменные t_f,t_o и т.д уже заданы и нормальные.
Просто когда я пишу int number ,выдает целое значение,а когда double то 0.Мне же нужно чтобы вдавало число с запятой
Выдает 0,ну сами понимаете))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2011, 16:59     Неправильное приведение типов или как?
Посмотрите здесь:

C++ Приведение типов
Приведение типов. C++
Приведение типов C++
Приведение типов C++
C++ Приведение типов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.06.2011, 17:02     Неправильное приведение типов или как? #2
для начала
C++
1
double number = (t_f + t_o + t_m + t_d + t_b + t_i + t_s) / 7.0;
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.06.2011, 17:02     Неправильное приведение типов или как? #3
мож компиль не может справиться и значения теряются. как в QT каком-нить

double number = static_cast< double >( pi );
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
17.06.2011, 17:03     Неправильное приведение типов или как? #4
Спецификатор формата %d означает число тип int. Для double нужно что-нибудь другое. Например %lf
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.06.2011, 17:05     Неправильное приведение типов или как? #5
видимо придется сделать развилочку и проверять дробную часть (modf). и делать либо %f либо %d
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.06.2011, 17:05     Неправильное приведение типов или как? #6
co6ak,
Цитата Сообщение от co6ak Посмотреть сообщение
мож компиль не может справиться и значения теряются. как в QT каком-нить
поясните?
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.06.2011, 17:07     Неправильное приведение типов или как? #7
я хз как объяснить. ибо в кьютэ недавно сталкивался с проблемой, когда интовсая переменная не могла передать значение в переменную дабл, без предварительного перевода.
было что-то типо
int x = 13; double y = x; // y = 0;
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
17.06.2011, 17:11     Неправильное приведение типов или как? #8
OstapBender, а смысл в развилочке? Переменная double должна выводиться через %f или подобные независимо от значения дробной части. %d только для целых (по типу, а не по значению).
Nameless One
17.06.2011, 18:02
  #9

Не по теме:

Цитата Сообщение от co6ak Посмотреть сообщение
я хз как объяснить. ибо в кьютэ недавно сталкивался с проблемой, когда интовсая переменная не могла передать значение в переменную дабл, без предварительного перевода.
было что-то типо
int x = 13; double y = x; // y = 0;
мистика какая-то... Прям так все и было?

OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:10     Неправильное приведение типов или как? #10
Цитата Сообщение от grizlik78 Посмотреть сообщение
OstapBender, а смысл в развилочке? Переменная double должна выводиться через %f или подобные независимо от значения дробной части. %d только для целых (по типу, а не по значению).
так он хочет чтобы, если он ввёл целое, ему без дробной части выдавалось, а если вещественное , то с ней.
а если сделать только %f, то целое будет выводится как 3.0



а, или хз, перечитал 1ый пост.
ну тогда просто %f.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
18.06.2011, 01:16     Неправильное приведение типов или как? #11
Если не хочется выводить лишние нули, то вместо %f можно использовать %g. Правда очень большие и очень маленькие будут в научном формате. Но я такой хотелки в исходном посте не увидел.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:30     Неправильное приведение типов или как? #12
Цитата Сообщение от grizlik78 Посмотреть сообщение
Если не хочется выводить лишние нули, то вместо %f можно использовать %g.
офигеть. 1ый раз слышу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2011, 07:17     Неправильное приведение типов или как?
Еще ссылки по теме:

Приведение типов C++
C++ Приведение типов
Приведение типов C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
18.06.2011, 07:17     Неправильное приведение типов или как?
  #13

Не по теме:

Цитата Сообщение от OstapBender Посмотреть сообщение
офигеть. 1ый раз слышу
man тебе в помощь

Yandex
Объявления
18.06.2011, 07:17     Неправильное приведение типов или как?
Ответ Создать тему
Опции темы

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