Как уже видно в четвертом цыкле уже получается не 2.00000000000000, а 1.99999999999999999 и тогда созраняается не 2, а 1.
И после всех цыклов получается
iDigits={1,1,3,4,5}, a не {1,2,3,4,5}
Надеюсь, что я себя правильно объяснил.
Мне нужно таким способом это сделать. Где мне что-то добавить или исправить?
Спасибо
Re: Раздеоение на цифры - Очень срочно
От:
Аноним
Дата:
15.11.08 13:28
Оценка:
Здравствуйте, TheAteist, Вы писали:
TA>То что я пытался сделать это разделить пятизначное число на цифры следующим образом.
Ну дык точность теряется при работе с плавающими типами, чему тут удивлятся
Есть 2 пути:
1. Это ввести epsilon=0.0001 и смотреть abs(x1 — x2) < epsilon
2. Юзать функцию floor по ходу
TA>Как уже видно в четвертом цыкле уже получается не 2.00000000000000, а 1.99999999999999999 и тогда созраняается не 2, а 1. TA>И после всех цыклов получается TA>iDigits={1,1,3,4,5}, a не {1,2,3,4,5}
TA>Надеюсь, что я себя правильно объяснил. TA>Мне нужно таким способом это сделать. Где мне что-то добавить или исправить?
TA>Спасибо
Здравствуйте, Andregc, Вы писали:
A>Здравствуйте, TheAteist, Вы писали:
TA>>То что я пытался сделать это разделить пятизначное число на цифры следующим образом. TA>>Например число 12345:
TA>>Как уже видно в четвертом цыкле уже получается не 2.00000000000000, а 1.99999999999999999 и тогда созраняается не 2, а 1. TA>>И после всех цыклов получается TA>>iDigits={1,1,3,4,5}, a не {1,2,3,4,5}
TA>>Надеюсь, что я себя правильно объяснил. TA>>Мне нужно таким способом это сделать. Где мне что-то добавить или исправить?
TA>>Спасибо
Сорри, чето напутал
Если тебе нужны только целые числа то все гораздо проще
Здравствуйте, TheAteist, Вы писали:
TA>То что я пытался сделать это разделить пятизначное число на цифры следующим образом. TA>Например число 12345:
Я не пойму чего ты к типу float прицепился? От этого у тебя все проблемы. Используй unsigned int.
TheAteist пишет:
> То что я пытался сделать это разделить пятизначное число на цифры > следующим образом. > Например число 12345:
Видимо, вы не понимаете, что во float нет десятичных цифр.
то, что вы пытаетесь сделать, сделать невозможно (с типами данных float/double).
надо использовать точные десятичные данные.
Здравствуйте, TheAteist, Вы писали:
TA>То что я пытался сделать это разделить пятизначное число на цифры следующим образом. TA>Например число 12345:
TA>