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

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

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

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

17.06.2011, 16:59. Просмотров 833. Ответов 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,ну сами понимаете))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2011, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильное приведение типов или как? (C++):

Что быстрее будет работать сравнение или (сложение и приведение типов)? - C++
Эти строчки if(h == 0xffffffff) { code_1 } else { code_2 } или if(h + 1) { code_2 } else { code_1 }

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

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

Приведение типов - C++
В паскале можно привести типы: type ts = 0..9; chislo = array of ts; Как это сделать на С++?

Приведение типов - C++
Есть код вызова метода: obj.func(char a, char b) сам метод: void func(char a, char b) { int i = (int)a, int j = (int)b; В...

Приведение типов - C++
Уважаемые программеры, ПОМОГИТЕ!!! Нужно (мне) реализовать шаблонную функцию для приведения типов. Пример: newType_cast&lt;T&gt;(“123”); ...

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

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

Не по теме:

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

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.
0
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
18.06.2011, 01:16 #11
Если не хочется выводить лишние нули, то вместо %f можно использовать %g. Правда очень большие и очень маленькие будут в научном формате. Но я такой хотелки в исходном посте не увидел.
1
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:30 #12
Цитата Сообщение от grizlik78 Посмотреть сообщение
Если не хочется выводить лишние нули, то вместо %f можно использовать %g.
офигеть. 1ый раз слышу.
0
Nameless One
18.06.2011, 07:17     Неправильное приведение типов или как?
  #13

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2011, 07:17
Привет! Вот еще темы с ответами:

Приведение типов. - C++
Столкнулся с задачей считывания данных из символьного массива с дальнейшим отбором из всего этого чисел и перезаписи их в массив типа...

Приведение типов - C++
Есть задача создать список с объектами у которых разные классы, но один базовый предок. Потом нужно перебрать список и если объект одного...

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

Приведение типов - C++
Доброго времени суток. Пусть имеются две структуры struct Student { string FirstName; string LastName; int year;


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

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

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