Ошибка при изменении типа данных - C (СИ)

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

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

Добрый день. Возникла следующая задача. Я бы даже сказал загадка. В программе использовал (int) - операцию перевода числа из типа с плавающей точкой в тип целого числа. В ходе тестирования оказалось, что выражение: (int)(2.3 * 100) дает ответ 229, а не 230 как по моему мнению должно было бы быть. При этом так же не правильные ответы дают выражения с константами (2.32, 2.28, 2.26). Во всех остальных случаях (из тех которые я тестировал) ответы были правильные, то есть соответствовали моему представлению. (int)(2.2 * 100) == 220 (int)(2.4 * 100) == 240 (int)(20.3 * 100) == 2030 и т.д. Если у кого нибудь есть этому объяснение буду признателен.

Решение задачи: «Ошибка при изменении типа данных»

textual
Листинг программы
scanf ("%d.%d", &a, &b);

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

В данном коде используется функция scanf для ввода двух чисел с плавающей точкой в переменные a и b. Список действий:

  1. Вводится число типа int в переменную a.
  2. Вводится число типа int в переменную b. Пример: Введите два числа с плавающей точкой: 1.5 2.7 a = 1 b = 2

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


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

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

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