Арифметика с плавающей запятой = Какая наихудшая точность / разница между десятичными и двоичными числами?

как все знают десятичные дроби (например, 0,1), при сохранении как с плавающей точкой (например, double или float) будут внутренне представлены в «двоичный формат» (IEEE 754). А некоторые десятичные дроби не могут быть напрямую представлены в двоичном формате.

Чего я не понял, так это точности этого «преобразования»:

1.) Сама плавающая точка может иметь точность (то есть «значащую»)?

2.) Но также и при преобразовании десятичной дроби в двоичную дробь теряется точность?

Вопрос:

Какая потеря точности (для «всех» возможных десятичных дробей) является наихудшим случаем при преобразовании десятичных дробей в дроби с плавающей запятой?

(Причина, по которой я хочу это знать, заключается в том, что при сравнении десятичных дробей с двоичными / с плавающей запятой мне нужно учитывать точность ... чтобы определить, идентичны ли обе цифры. И я хочу, чтобы эта точность была как как можно точнее / точнее (десятичная дробь == двоичная дробь +/- точность)

Пример (только гипотетический)

0,1 dec => 0,10000001212121212121212 (binary fraction double) => precision loss 0,00000001212121212121212
0,3 dec => 0,300000282828282 (binary fraction double) => precision loss  0,000000282828282
5
задан user unknown 24 August 2011 в 03:19
поделиться