Top.Mail.Ru
Ответы

Почему измерения в программе С++ неточные?

задачу и мой код прикрепил в фотографиях
вопрос - почему при использовании типа переменных float измерения неточные? я вроде не ухожу в большое кол-во цифр после запятой, а наоборот, умножаю. при использовании double результат становится точным. можно ли на таком скелете программы сделать точный вывод через float?

По дате
По рейтингу
Аватар пользователя
n_veselukhaИскусственный интеллект

Тип float целесообразно использовать в случаях когда значения небольшие, необходимая точность после разделителя два-три знака, а данных тьма-тьмущая. Например, при работе с базами данных.

Если точность после разделителя нужна высокая либо вещественные числа имеют очень большие значения и точность является определяющим характером. Следует использовать сторонние библиотеки длинной арифметики.

Во всех остальных случаях следует использовать тип double.

Аватар пользователя
maksim_shataev_11Мыслитель

Это побочный эффект того, как данные с плавающей запятой представляются в ЦП. По этой причине может происходить некоторая потеря точности, а некоторые операции с плавающей запятой могут давать непредвиденный результат. Причины такого поведения могут быть следующими. Двоичное представление десятичного числа может быть неточным. Несоответствие типов используемых чисел (например, float и double). Для решения этой проблемы большинство программистов либо гарантируют, что значение больше или меньше необходимого, либо используют библиотеку двоично-десятичного кода (BCD), которая будет обеспечивать точность.

Аватар пользователя
homme_fringantОракул

Ограничения из да размера регистров памяти выделяемой под хранение
переменных с плавающей запятой. младшие разряды не умещаются.
При большом количестве знаков после запятой
значения double тоже становятся не точными.
Следует использовать сторонние библиотеки длинной арифметики.

Аватар пользователя
user49913Мудрец

число 500.1 не может быть представлено в виде конечной двоичной дроби
при использовании double результат тоже будет неточным, просто, возможно, в вывод ошибка не попадёт



Видео по теме