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

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

Восстановить пароль Регистрация
 
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
07.09.2012, 19:31     Почему появляется предупреждение о переводе типов? #1
Здравствуйте, когда я писал лабу у меня возник один вопрос. В этом коде:
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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 19:31     Почему появляется предупреждение о переводе типов?
Посмотрите здесь:

C++ Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.
Почему появляется предупреждение Variable '...' set but not used C++
C++ Почему операторы инкремента действуют по разному для стандартных и нестандартных типов?
Почему конструктор вызывается повторно при преобразовании типов? C++
C++ почему когда вводишь пунк 2 не появляется решение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 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. не пишите так код. его же невозможно читать

Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
07.09.2012, 20:32  [ТС]     Почему появляется предупреждение о переводе типов? #3
Спасибо, и ещё один вопрос. Можно ли в операторе "case" задать интервал?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2012, 20:39     Почему появляется предупреждение о переводе типов? #4
Цитата Сообщение от Grey5 Посмотреть сообщение
Спасибо, и ещё один вопрос. Можно ли в операторе "case" задать интервал?
Нет. Можно несколько case подряд с отдельными значениями (со всеми, естессно). Интервалы записываются паровозом из if–else.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 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;
}
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.09.2012, 10:21     Почему появляется предупреждение о переводе типов? #6
А теперь найдите это в стандарте. 6.8.4.2/2, если чё.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2012, 10:32     Почему появляется предупреждение о переводе типов?
Еще ссылки по теме:

C++ Ошибка при переводе программы с языка Pascal
Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
C++ Ошибка в переводе программы с паскаля на с++

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
08.09.2012, 10:32     Почему появляется предупреждение о переводе типов? #7
Название: images.jpeg
Просмотров: 23

Размер: 4.4 Кб
да, это фишка gcc, попутал.
Yandex
Объявления
08.09.2012, 10:32     Почему появляется предупреждение о переводе типов?
Ответ Создать тему
Опции темы

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