|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.12.2010, 07:20 | #1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Как правильно делить на нуль?
Вопрос по мотивам темы http://programmersforum.ru/showthread.php?t=126535
Написал длинную арифметику, возник вопрос, как реагировать на попытку делить на нуль? Генерировать исключение как-то не хочется --> потом программист будет каждое деление в try обертывать, не по фень-шую это. Еще как вариант могу туда запихивать какое-либо число (пока нуль), рассматриваю возможность выставить какой-нибудь специальный флаг... Какие будут предложения?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.12.2010, 07:27 | #2 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
Мое предложение - генерировать исключение.
|
17.12.2010, 07:33 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Нафига? Потому что так все делают? Весьма желательно обоснование, почему?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.12.2010, 07:41 | #4 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
А для чего на выходе неверное число?
Или флаг проверять после каждого деления? А если вы забудете проверить флаг - то будете думать, что все хорошо и "ракета полетит в другую сторону" |
17.12.2010, 07:45 | #5 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
17.12.2010, 08:07 | #6 | |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Цитата:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
|
17.12.2010, 08:11 | #7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я не могу выразить восторг в процедуре...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.12.2010, 08:29 | #8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
В моей практике это обычное дело. По разным каналам поступают разные данные с которыми производятся разные вычисления и результат выводится в виде графика.
Данные могут быть разные. Деление на 0 вполне возможно. Останавливать процесс, кричать "караул", либо как-то по-другому об этом сигнализировать, в данном случае бесполезно, ибо просто некому. Делаю так: при однократном делении на 0 результат просто игнорирую (считая сбоем). При многократном повторном делении - в качестве результата вывожу максимально предельное значение, определенное данной системой (задачей).
Чем шире угол зрения, тем он тупее.
|
17.12.2010, 08:36 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Дело в том, что это арифметика чисел с произвольным числом разрядов - теоретически сколько даст операционка - тысячи и сотни тысяч разрядов. Ну и какое максимальное число туда пихать? По-настоящему если диапазон числа и ограничен типом, его хранящим, то это значение мне неизвестно и подозреваю что оно на разных машинах будет различно - из-за свопа, и ОЗУ. Засада, однако.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.12.2010, 08:40 | #10 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Деление на нуль при запуске | Pababop | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 12.12.2010 16:43 |
убрать null (нуль) символы в строке | Kib | Общие вопросы Delphi | 7 | 25.06.2010 14:22 |
как поставить ограничение на число нуль а не на символ нуль??? | Dr.Swat | Помощь студентам | 0 | 12.06.2010 20:35 |
Делить без остатка | rangel | PHP | 4 | 30.07.2009 14:31 |
На 0 делить! | abdumanon | Microsoft Office Excel | 6 | 07.04.2009 13:18 |