Перейти к содержанию
    

Обработка деления на ноль

Имеем в частном случае STM32F0 и кейл-лайт.

Сейчас у меня ситуация, при которой в формуле не исключено деление на ноль (целочисленное).

Как поступить? Нашел статью Trapping and identifying divide-by-zero errors

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4061.html

Ну хорошо, теперь имею программное исключение, но что с ним делать опять непонятно. Как общепринято поступать в случае угрозы деления на ноль?

 

Изменено пользователем Михась

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не лезть слишком глубоко то банальная проверка на ноль.

if y=0
  then ShowMessage('Error')
  else Result:=x/y;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 minutes ago, Михась said:

Как общепринято поступать в случае угрозы деления на ноль?

А что вас смущает в делении на ноль? Математически это допустимо. Вы же не обозначили тип данных. Для float всё нормально будет.

А если проверять делитель (знаменатель дроби) на ноль? Общепринятых норм не встречал. Но я бы вывел ошибку (на дисплей, в функцию уровнем выше и т.п.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, haker_fox said:

Вы же не обозначили тип данных. Для float всё нормально будет.

Да вроде написал что деление целочисленное. 

В результате вставил в формулу проверку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Михась said:

Да вроде написал что деление целочисленное.

Был невнимателен, извините.

9 hours ago, Михась said:

В результате вставил в формулу проверку.

Ну а что тут ещё можно сделать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...