Здравствуйте, Andregc, Вы писали:
A>Здравствуйте, TheAteist, Вы писали:
TA>>То что я пытался сделать это разделить пятизначное число на цифры следующим образом.
TA>>Например число 12345:
TA>>TA>>float fNum = 12345;
TA>>int iNum;
TA>>iNum = fNum; //fNum = iNum = 12345
TA>>//Первый цыкл
TA>>(fNum / 10 - iNum / 10) * 10 // => ((float)12345/10 - (int)12345/10) * 10 = 0.500000000000000000 * 10 = 5.000000000000000, сохраняю эту цифру
TA>>fNum = (fNum / 10) - ((fNum / 10 - iNum / 10)) // => (float)12345/10 - ((float)12345/10 - (int)12345/10) = 1234.50000000000000-(1234.50000000000000 - 1234)= 1234.50000000000000 - 0.500000000000000 = 1234.0000000000000=> fNum = 1234.0000000000000
TA>>iNum = fNum; // iNum = 1234
TA>>//Второй цыкл
TA>>(fNum / 10 - iNum / 10) * 10 // => ((float)1234/10 - (int)1234/10) * 10 = 0.40000000000000568 * 10 = 4.000000000000568, сохраняю эту цифру
TA>>fNum = (fNum / 10) - ((fNum / 10 - iNum / 10)) // => (float)1234/10 - ((float)1234/10 - (int)1234/10) = 123.40000000000001-(123.40000000000001 - 123)=123.40000000000001 - 0.4000000000000568=> fNum = 123.00000000000000
TA>>iNum = fNum; // iNum = 123
TA>>//Третий цыкл
TA>>(fNum / 10 - iNum / 10) * 10 // => ((float)123/10 - (int)123/10) * 10 = 0.3000000000000071 * 10 = 3.0000000000000718, сохраняю эту цифру
TA>>fNum = (fNum / 10) - ((fNum / 10 - iNum / 10)) // => (float)123/10 - ((float)123/10 - (int)123/10) = 12.30000000000001-(12.30000000000001 - 12)=12.30000000000001 - 0.300000000000071=> fNum = 12.00000000000000
TA>>iNum = fNum; // iNum = 12
TA>>//Четвертый цыкл
TA>>(fNum / 10 - iNum / 10) * 10 // => ((float)12/10 - (int)12/10) * 10 = 0.1999999999999996 * 10 = 1.999999999999996, сохраняю эту цифру
TA>>
TA>>Как уже видно в четвертом цыкле уже получается не 2.00000000000000, а 1.99999999999999999 и тогда созраняается не 2, а 1.
TA>>И после всех цыклов получается
TA>>iDigits={1,1,3,4,5}, a не {1,2,3,4,5}
TA>>Надеюсь, что я себя правильно объяснил.
TA>>Мне нужно таким способом это сделать. Где мне что-то добавить или исправить?
TA>>Спасибо
Сорри, чето напутал
Если тебе нужны только целые числа то все гораздо проще
iNum=12345
while(inum != 0) {
digit = iNum % 10;
inum /= 10;
}