Хабр доступен 24/7 благодаря поддержке друзей

Комментарии 6
Читаю статью как месседж "деление провоцирует деление на ноль, не вынуждайте разработчиков делить"
Помимо нуля, инкремент может быть очень мал, но всё же не равен нулю — что может привести к переполнению
if "инкремент" == 0:
return 0;
Разве так нельзя?
Если надо делить, то делите заранее. Выдавайте не BlockDuration , а BlockFrequency.
Это как посмотреть, код if (index < 0 || index >= forecast.Forecast.Count) проблемный - не работает с NaN, а если написать if (0 <= index && index < forecast.Forecast.Count), то при работе по IEC 60559, всё будет корректно.
А так, да, конечно, лучше, когда всё вместе, и интерфейс надёжный, и код надёжный. Хотя, NaN может просочиться и через интерфейс без деления, например, ввиду недостатка данных.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Не искушайте пользователей делением на ноль