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

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

Войти
Регистрация
Восстановить пароль
 
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
#1

Почему появляется предупреждение о переводе типов? - C++

07.09.2012, 19:31. Просмотров 378. Ответов 6
Метки нет (Все метки)

Здравствуйте, когда я писал лабу у меня возник один вопрос. В этом коде:
C++
1
2
3
float x,y;
cin<<x;
x>2 ? y=x*x-3+2.5*x*x*x : x<-1 ? y=exp(x)+5+cos(0.001*x) : y=log(abs(tan(2*x)))-1;
У меня выдавалось два предупреждения о том, что может иметь место потеря данных при переводе из типа float в тип double. Внимание, вопрос: почему компилятор хочет перевести всё в тип double?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 19:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему появляется предупреждение о переводе типов? (C++):

Почему появляется предупреждение Variable '...' set but not used - C++
Здравствуйте. Возник вопрос, почему при компиляции данного кода #include &lt;iostream&gt; int main( int argc, char** argv ) { int...

почему когда вводишь пунк 2 не появляется решение - C++
double calc(int n, double sum, int a, int b, double p, double f) { if(n == 0) return sum; else { ...

Почему появляется ошибка С2064 (очень давно не писала на С++) - C++
Почему тут появляется эта ошибка? Заранее спасибо :yes: void FileSorter::sortString(bool (FileSorter::*needsToBeMoved)(string, string))...

Почему не происходит автоматическое преобразование стандартных типов? - C++
Имеется следующий код : int a = 10; cout&lt;&lt;a/100&lt;&lt;endl; Вариант из явным преобразованием работает чудесно :

Почему при данном приведение типов не возникает ошибки? - C++
Почему нижеприведенный код не вызывает проблем? Ведь, мы приводим типы от ребенка ко второму родителю и потом void, в результате чего...

Почему следует избегать явного приведения типов? (по возможности) - C++
Почему следует избегать явного приведения типов? (по возможности)

6
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
07.09.2012, 19:35 #2
C++
1
x>2 ? y=x*x-3+2.5f*x*x*x : x<-1 ? y=exp(x)+5+cos(0.001f*x) : y=log(abs(tan(2*x)))-1;
по умолчанию число формата 4.2 - это double
а 4.2f - это float

Не по теме:

P.S. не пишите так код. его же невозможно читать

1
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
07.09.2012, 20:32  [ТС] #3
Спасибо, и ещё один вопрос. Можно ли в операторе "case" задать интервал?
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2012, 20:39 #4
Цитата Сообщение от Grey5 Посмотреть сообщение
Спасибо, и ещё один вопрос. Можно ли в операторе "case" задать интервал?
Нет. Можно несколько case подряд с отдельными значениями (со всеми, естессно). Интервалы записываются паровозом из if–else.
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,355
Записей в блоге: 2
Завершенные тесты: 1
08.09.2012, 10:11 #5
Цитата Сообщение от Grey5 Посмотреть сообщение
Можно ли в операторе "case" задать интервал?
в С99 можно.
вот так:
C
1
2
3
4
5
6
7
8
switch(n) {
    case 0 ... 5:
        std::cout << "0 - 5" << std::endl;
        break;
     case 6 ... 10:
         std::cout << "6 - 10" << std::endl;
         break;
}
1
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.09.2012, 10:21 #6
А теперь найдите это в стандарте. 6.8.4.2/2, если чё.
1
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,355
Записей в блоге: 2
Завершенные тесты: 1
08.09.2012, 10:32 #7
Название: images.jpeg
Просмотров: 23

Размер: 4.4 Кб
да, это фишка gcc, попутал.
0
08.09.2012, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2012, 10:32
Привет! Вот еще темы с ответами:

Почему конструктор вызывается повторно при преобразовании типов? - C++
В качестве примера предлагаю рассмотреть примерчик из учебника. В примере мы создаём класс, содержащий в качестве поля строку символов и...

Почему операторы инкремента действуют по разному для стандартных и нестандартных типов? - C++
class my { int i; public: my(int in) :i(in) {} operator int () { return i; } int operator=(int...

Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес - C++
Есть следующий код. Результат работы этой программы представлен на рисунке. Почему при выводе указателя для char возвращается значение, а...

Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов. - C++
Буду благодарен! Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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