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

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

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

warning C4244: =: преобразование "double" в "float - C++

21.11.2013, 23:15. Просмотров 770. Ответов 6
Метки нет (Все метки)

Объясните нубу пожалуйста, почему выкидывает это предупреждение ?
warning C4244: =: преобразование "double" в "float", возможна потеря данных
Как исправить ?
MSVC++ 2010

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
float trArea (int fa, int fb){
    float fS;
    fS = fa*fb/2.0;
    return fS;
}
 
int main() {
    float S;
    S = trArea(5,4); 
 
    cout << "Area of the triangle is equal to " << S << endl;
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос warning C4244: =: преобразование "double" в "float (C++):

Warning C4244: return: преобразование "double" в "float", возможна потеря данных - C++
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244: return: преобразование &quot;double&quot; в &quot;float&quot;,...

Warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Возникла проблема Решаю лабу, написал код, выдает ошибку (warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря данных) ...

warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Вот код. Работало, теперь не работает. Не пойму в чём дело. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных - C++
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование &quot;__int64&quot; в &quot;int&quot;, возможна...

Необъявленный идентификатор, преобразование "int" в "float" - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define N 50 #define M 50 int n,m,i,j,k,r; void...

Ошибка усечение из "double" к "float" - C++
Обясните пожалуйста что это за ошибка усечение из &quot;double&quot; к &quot;float&quot; никак не могу понять

6
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
21.11.2013, 23:43 #2
C++
1
fS = (float)(fa*fb/2.0);
0
levent
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 8
21.11.2013, 23:45  [ТС] #3
Так это вроде устаревший и не совсем корректный способ ?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2013, 03:09 #4
Цитата Сообщение от levent Посмотреть сообщение
2.0
потому что это double
2.0f - это float
1
levent
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 8
22.11.2013, 16:17  [ТС] #5
Цитата Сообщение от I.M. Посмотреть сообщение
потому что это double
2.0f - это float
Понятно.Спасибо.
А есть ли какая таблица или алгоритм может быть правильного преобразования или написания float чисел ?
0
fridi
-8 / 40 / 1
Регистрация: 21.09.2009
Сообщений: 145
22.11.2013, 16:30 #6
преобразование "double" в "float", возможна потеря данных
потому что sizeof(float) < sizeof(double), поэтому и происходит такое предупреждение.
Цитата Сообщение от levent Посмотреть сообщение
А есть ли какая таблица или алгоритм может быть правильного преобразования или написания float чисел ?
нужно просто выбирать типы данных, которые лучше подходят под задачу которую вы решаете.
например функцию float trArea (int fa, int fb) объявить как float trArea (float fa, float fb)
1
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2013, 18:18 #7
Цитата Сообщение от levent Посмотреть сообщение
Понятно.Спасибо.
А есть ли какая таблица или алгоритм может быть правильного преобразования или написания float чисел ?
Эм, что?
если вопрос о подобных преобразованиях, то да, такие правила есть
ищем по запросу "ISO 14882:2011" и там целая глава о преобразовании типов. Глава 4. Можно читать не все пункты, а только те, которые касаются float

Добавлено через 1 час 42 минуты
http://isocpp.org/files/papers/N3690.pdf
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 18:18
Привет! Вот еще темы с ответами:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

усечение из "double" к "float - C++
Вообщем решил я задачу. Задача: Структура CandyBar содержит три члена. Первый член хранит название коробки конфет. Второй — ее вес...

Исправить ошибки "cannot convert 'double (*)(double)' to 'double'" и "too many arguments to function" - C++
пожалуйста проверьте и помогите исправить ошибки: #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;stdlib.h&gt; ...

Ошибка "Невозможно преобразовать аргумент 1 из "double" в "double *" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double f(double *a, double x) { double k = 0; int n; for (int i = 0;...


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

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

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