Неточность при умножении int and float - C (СИ)

Узнай цену своей работы

Формулировка задачи:

float x = 4.2;
int y = 100;
float z = x*y;
printf("%f\n,", z);
Выводит 419.999969 какова природа этих чисел если по всей логике должно быть 420.000000 С некоторыми другими числами тоже что то не ладное с некоторыми же все норм. Самое страшное с 4.2 для меня оказалось то что она меняет целую часть. Чего я не знаю?

Решение задачи: «Неточность при умножении int and float»

textual
Листинг программы
double x = 412.745;
int krug = (int) (x + 0.5);

Объяснение кода листинга программы

  1. Объявляется переменная типа double с именем x и значением 412.745.
  2. Используется операция приведения типа (int) для преобразования значения переменной x в тип int.
  3. Результат приведения типа (int) значения переменной x сохраняется в переменной типа int с именем krug.
  4. Значение переменной krug будет равно 412.
  5. Если бы в операции приведения типа было использовано (float) вместо (int), то результат был бы 412.0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы