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

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

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

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

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

Почему появляется предупреждение 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 { ...

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2012, 20:39     Почему появляется предупреждение о переводе типов? #4
Цитата Сообщение от Grey5 Посмотреть сообщение
Спасибо, и ещё один вопрос. Можно ли в операторе "case" задать интервал?
Нет. Можно несколько case подряд с отдельными значениями (со всеми, естессно). Интервалы записываются паровозом из if–else.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 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
~ Эврика! ~
1243 / 992 / 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++
class my { int i; public: my(int in) :i(in) {} operator int () { return i; } int operator=(int...

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

Ошибка в переводе программы с паскаля на с++ - C++
вот код паскаля. я перевел эти коды в с++. но в с++ не работает помогите найти ошибку пожалуйста 1. program desicion1; ...

Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов - C++
Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов int или float и возвращают...


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

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

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

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