Я смотрю на задачу C ++, которая читает файл, который содержит десятичные числа и сохраняет каждое число в структуре данных как один 4-байтовый float
, Перед изменением процесса (использовать double
) Я хочу знать, какова средняя ошибка в% между числом в файле и числом, хранящимся в структуре.
Например, если файл читает 19.5
и структура данных 19.49999999
тогда ошибка
abs(19.49999999 / 19.5 - 1) = 5.128205128205128e-8 %
Если распределение имеет значение, большинство чисел в файле являются положительными и меньше 1000.
32-разрядные числа с плавающей запятой имеют 23 бита мантиссы, что означает представление с точностью до 7-8 десятичных цифр. Чтобы быть точным, относительная ошибка 2^-24
или о 6e-8
,
Других решений пока нет …