Re: Раздеоение на цифры - Очень срочно
От: Andregc  
Дата: 15.11.08 13:41
Оценка:
Здравствуйте, 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>Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.