Я использую цикл while для подсчета количества цифр на моем входе.Подсчет числа цифр в двойном C++
Так что мой вклад был 1,525
length = 0;
num = num - int(num);
while (num >= .0001) {
num = num * 10;
length = length + 1;
num = num - int(num); }
Когда я сделать
cout << "\n\nLength: " << length << "\n";
Ответ Я получаю 51 и другие цифры дают мне asnwear из 49 или что-то явно не так. Это то, как работает C++, или это просто моя ошибка. Спасибо.
Вы можете видеть, что происходит, отображая значения по мере запуска вашего алгоритма: http://ideone.com/ORPWpx - имейте в виду уже предоставленную исходную информацию, что 'double's не может точно хранить 1.525. –