Преобразование в строку может быть лучшим вариантом, который у вас есть. Помните, что double
s представлены в базе 2 внутри. Следовательно, десятичное представление, которое вы видите, является лишь приближением к фактически сохраненному значению (за исключением целых чисел до 2 53 ), которое представляет собой сумму отдельных степеней 2.
Таким образом, попытка выяснить количество десятичных цифр из двоичного представления, безусловно, не является простой или тривиальной задачей - тем более что в структуре может также применяться округление, чтобы числа типа 3.999999999998 выглядели как 4.0, поскольку они, как представляется, имеют большую точность там на самом деле есть.