Преобразование double в float возможна потеря данных

Я столкнулся с этой проблемой вчера и не смог ее решить.
Так что, если вы могли бы помочь мне, я был бы рад.

Итак, я получаю эту ошибку:

из этих двух строк

Остальная часть кода;

Решение

delta а также hyp двойные и результат деления двойной, atanf принимает значение с плавающей точкой, отсюда и ошибка.

я бы поменял atanf в atan или выполнить все в два раза. Double имеет около 16 значащих цифр, плавающий только около 7

помогите новичку. выдает предупреждения:
преобразование double в float; double в int; int в float, возможна потеря данных
и ошибку: переопределение формального параметра a

#include "stdio.h"
float Sq(int a)
<
double p;
p = 3.14*(a / 2)*(a / 2);
return p;
>

float Sq(int a, int D)
<
double a;
a = D / 1.4;
return a;
>

int main()
<
double a, D, S;
scanf_s("%f", &D);
S = 3.14*(a / 2)*(a / 2);
printf(" Ploshad ravna %f
", S);
return 0;
>

conversion: преобразование из type1 в type2, возможна потеря данных ‘conversion’ conversion from ‘type1’ to ‘type2’, possible loss of data

Целочисленный тип преобразуется в меньший целочисленный тип. An integer type is converted to a smaller integer type. Это предупреждение уровня 4, если тип Type1 равен int , а тип тип2 меньше int . This is a level-4 warning if type1 is int and type2 is smaller than int . В противном случае это уровень 3 (ему присваивается значение типа __int64 переменной типа unsigned int ). Otherwise, it is a level 3 (assigned a value of type __int64 to a variable of type unsigned int ). Возможна потеря данных. A possible loss of data may have occurred.

При возникновении ошибки C4244 следует изменить программу так, чтобы использовались совместимые типы, или добавить в код логику, чтобы диапазон возможных значений всегда был совместим с типами, которые вы используете. If you get C4244, you should either change your program to use compatible types, or add some logic to your code, to ensure that the range of possible values will always be compatible with the types you are using.

Читайте также  Приложение камера для ноутбука windows 7

Предупреждение C4244 также может срабатывать на уровне 2. Дополнительные сведения см. в разделе Предупреждение компилятора (уровень 2) C4244 . C4244 can also fire at level 2; see Compiler Warning (level 2) C4244 for more information.

Это преобразование может вызвать проблемы из-за неявных преобразований. The conversion may have a problem due to implicit conversions.

Следующий пример приводит к возникновению ошибки C4244. The following sample generates C4244:

Предупреждение C4244 может возникнуть при создании кода для 64-разрядных сред, который не вызывает предупреждение при построении для 32-разрядных сред. Warning C4244 can occur when building code for 64-bit targets that does not generate the warning when building for 32-bit targets. Например, указатели 32-разрядных платформах представлены 32-разрядными значениям, а на 64-разрядных платформах — 64-разрядными. For example, a difference between pointers is a 32-bit quantity on 32-bit platforms, but a 64-bit quantity on 64-bit platforms.

Следующий пример приводит к возникновению ошибки C4244 при компиляции для 64-разрядных сред: The following sample generates C4244 when compiled for 64-bit targets:

Ссылка на основную публикацию
Adblock
detector