Обработка целой и дробной части вещественного числа в С++

Рейтинг: 0Ответов: 1Опубликовано: 27.01.2015

Всем привет.

Вопрос в том, какой способ предпочтительнее для подсчета количества цифр в дробной и целой частях вещественного числа. В основном предлагаются варианты перевода в строку или цикл деления с остатком. Есть ли еще какие-нибудь способы?

Вопрос сюда же: как правильно перевести вещественное число в строку?

Ответы

▲ 2Принят

Такого разумного способа не существует. Числа типа double/float хранятся в виде двоичной дроби. Поскольку число 0.3 не представимо точно в виде конечной двоичной дроби, после присвоения

double d = 0.3;

вы не сможете выяснить, что в исходном числе один десятичный разряд.

Дополнительное чтение: OMG Ponies!!!