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

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

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

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

17.06.2011, 16:59. Просмотров 827. Ответов 12
Метки нет (Все метки)

Короче вот код
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++
#include <stdio.h> int main(void) { printf("%d", (int*)3 + 4); return 0; } То что выведется 19 проверить можно. Но...

Приведение типов: как работает reinterpret_cast<>() ? - C++
Хочу разобраться до конца с приведением типов а именно интересует reinterpret_cast&lt;&gt;(), хотя бы в общих чертах логика этой функции, на...

Приведение типов - C++
Доброго времени суток. Есть вопрос. Допустим: class Base { ..... } class Derived:public Base{ .... }

Приведение типов - C++
Как компилятор заставить адекватней приводить типы? (VS2012) Например: int a=-1; unsigned int b=5; if(a&gt;b){...}//Условие...

Приведение типов - C++
Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования...

Приведение типов? - C++
Подскажите, пожалуйста что происходит. Не понимаю почему такой код работает. .h class Km { private: static const...

Приведение типов - C++
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого qsort. Вот что получилось: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 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
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.06.2011, 17:02     Неправильное приведение типов или как? #3
мож компиль не может справиться и значения теряются. как в QT каком-нить

double number = static_cast< double >( pi );
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
17.06.2011, 17:03     Неправильное приведение типов или как? #4
Спецификатор формата %d означает число тип int. Для double нужно что-нибудь другое. Например %lf
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.06.2011, 17:05     Неправильное приведение типов или как? #5
видимо придется сделать развилочку и проверять дробную часть (modf). и делать либо %f либо %d
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.06.2011, 17:05     Неправильное приведение типов или как? #6
co6ak,
Цитата Сообщение от co6ak Посмотреть сообщение
мож компиль не может справиться и значения теряются. как в QT каком-нить
поясните?
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.06.2011, 17:07     Неправильное приведение типов или как? #7
я хз как объяснить. ибо в кьютэ недавно сталкивался с проблемой, когда интовсая переменная не могла передать значение в переменную дабл, без предварительного перевода.
было что-то типо
int x = 13; double y = x; // y = 0;
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
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
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:10     Неправильное приведение типов или как? #10
Цитата Сообщение от grizlik78 Посмотреть сообщение
OstapBender, а смысл в развилочке? Переменная double должна выводиться через %f или подобные независимо от значения дробной части. %d только для целых (по типу, а не по значению).
так он хочет чтобы, если он ввёл целое, ему без дробной части выдавалось, а если вещественное , то с ней.
а если сделать только %f, то целое будет выводится как 3.0



а, или хз, перечитал 1ый пост.
ну тогда просто %f.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
18.06.2011, 01:16     Неправильное приведение типов или как? #11
Если не хочется выводить лишние нули, то вместо %f можно использовать %g. Правда очень большие и очень маленькие будут в научном формате. Но я такой хотелки в исходном посте не увидел.
OstapBender
583 / 521 / 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++
Есть ли какая-нибудь разница в следующих выражениях: float a = 123.4f и float a = (float)123.4

Приведение типов. - C++
Доброго времени суток! В общем, есть класс Matrix(прямоугольные над полем вещ. чисел). Необходимо реализовать приведение типов Matrix...

Приведение типов - C++
Чем отличается type(x) от (type) x?

Приведение типов - C++
При вводе с клавиатуры s = 11 и a = 1.1, получаем 9. Результат переменной d = 10, это правильно. В чём подвох? int main() { ...

приведение типов - C++
Объясните, пожалуйста, почему возникает такая ошибка: error C2666: 'operator *' : 4 overloads have similar conversions ? Из-за того,...


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

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

Не по теме:

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

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

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