Потеря точности при умножении - C (СИ)

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

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

# include <stdio.h>
 
main () {
 
float x,y,s;
scanf ("%f %f", &x,&y);
s=x*y;
printf ("%f",s);
}
Ввожу значения: 12.1 78.8 а ответ получаю 953.4800

42

Откуда нарисовались 42? Почему происходит такая жуткая потеря точности? Как эту проблему решают например при написании калькулятора?

Решение задачи: «Потеря точности при умножении»

textual
Листинг программы
# include <stdio.h>
 
int main ()
{
double x,y,s;
 
scanf ("%lf %lf", &x,&y);
s=x*y;
printf ("%lf",s);
 
return 0;
}

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

  1. Включаем заголовочный файл
  2. Объявляем переменные x, y, s типа double
  3. Считываем значения переменных x и y с помощью функции scanf, указывая формат %lf для считывания вещественных чисел
  4. Вычисляем значение переменной s как произведение x и y
  5. Выводим значение переменной s на экран с помощью функции printf, указывая формат %lf для вывода вещественного числа
  6. Завершаем программу с помощью оператора return 0

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


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

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

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