![]() |
|
Модераторы: bsa |
![]()
|
|
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Дано число R вида nnn.ddd. Получить ddd.nnn
Это сообщение отредактировал(а) ioManip - 2.10.2012, 13:57 --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
nnn = int(nnn_ddd);
ddd = (nnn_ddd - nnn) * 1000; ddd_nnn = ddd + nnn/1000.0; |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
bsa, Благодарю!
--------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Вот можно ещё кувалдой немного поработать и получится что-то типа такого
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Ну по условию точка просто обязана быть, поэтому проверку не делал А двум файндам альтернатива сохранить позицию точки в итератор и использовать его?
или как-то по-другому? Это сообщение отредактировал(а) NoviceF - 2.10.2012, 21:26 |
|||
|
||||
| ioManip |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 12.8.2011 Где: Благовещенск Репутация: нет Всего: нет |
Ребят, возникла проблемка. Не могу понять, то ли моя ошибка, то ли это зависит от системы в которой я работаю...
Например при вводе 563,123 выдается 123,549...(откуда 549?) при вводе 999,657 выдается 657,981... В чем может быть ошибочка? P.S. floor and ceil использовал, получалось разрешит проблему, но не для всех значений... --------------------
Мечты не работают, пока ты не работаешь! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
ioManip, вместо float используй double.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
В реальных программах на такое полагаться нельзя. Предположим в программу поступают числа из другой процедуры, и там на каком-то этапе получилось число 123.000. Естественно при выводе оно будет преобразовано в "123". Ваша функция, не найдя точки, выбросит исключение, и отправит всю программу в "нирвану". Потом доказывайте что точка там просто должна была быть по условию. Я уж не говорю что может банально попасться како-то Вася, который забудет про точку. |
|||
|
||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
||||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| agentjamesbolt007 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
если условия именно такие: Дано число R вида nnn.ddd. Получить ddd.nnn , то
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| agentjamesbolt007 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 5.9.2012 Репутация: нет Всего: нет |
||||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Все будет работать. Но если число больше 999 (по модулю) или после запятой больше 3 знаков (имеется в виду код bsa) - то нет. А поскольку числа хранятся в двоичной системе, то из-за ошибок округления ... В коде agentjamesbolt007 будет неправильно, если число меньше 100. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |