Как указано в R FAQ , единственными числами, которые могут быть точно представлены в числовом типе R, являются
- целые числа
- дробей, знаменатель которых является степенью2
Все остальные числа внутренне округлены с точностью (как правило) до 53 двоичных цифр.
Сказав это, как сказать, что данное число может храниться точно в числовом типе R или должно быть округлено?Или, иначе говоря, как сказать, что числовое число является результатом дроби, знаменатель которой равен степени 2 или нет?
Например, 0.03125
может храниться в точности, так как это результат 1/32
(т.е. знаменатель - это степень 2)
sprintf("%.60f", 1/32)
#[1] "0.031250000000000000000000000000000000000000000000000000000000"