как все знают decimal fractions
(например, 0,1), при сохранении как floating point
(например, double или float) будет внутренне представлено в «двоичном формате» (IEEE 754). И некоторые десятичные дроби не могут быть напрямую представлены в двоичном формате.
Что я не понял, так это точность этого «преобразования»:
1.) Сама точка с плавающей запятой может иметь точность (то есть "значительную")?
2.) Но также преобразование десятичной дроби в двоичную дробь имеет потерю точности?
Вопрос:
Какова наихудшая потеря точности (для «всех» возможных десятичных дробей) при преобразовании из десятичных дробей в дроби с плавающей запятой?
(Причина, по которой я хочу это знать, заключается в том, что при сравнении десятичных дробей с двоичными дробями / дробями с плавающей запятой мне необходимо учитывать точность ... чтобы определить, идентичны ли обе цифры. И я хочу, чтобы эта точность была плотный / точный, насколько это возможно (decimal fraction == binary fraction +/- precision)
Пример (только гипотетический)
0,1 dec => 0,10000001212121212121212 (binary fraction double) => precision loss 0,00000001212121212121212
0,3 dec => 0,300000282828282 (binary fraction double) => precision loss 0,000000282828282