EDIT: Я останнім часом отримую багато зворотних запитів ... тому я подумав, що просто додам зауваження, що ця відповідь була написана до того, як питання було проведено останнє редагування, де в якості опції було вказано повернення нуля. .що здається дуже прийнятним. Частина моєї відповіді була спрямована на такі проблеми, як у Едвардо, у коментарях, які, здається, виступають за повернення 0. Оце я виступив проти мене.
ВІДПОВІДЬ: Я думаю, що тут є основна проблема, яка полягає в тому, що поділ на 0 не є законним. Це вказівка на те, що щось є фундаментально неправильним. Якщо ви ділите на нуль, ви намагаєтесь зробити щось, що математично не має сенсу, тому жодна числова відповідь, яку ви можете отримати, не буде дійсною. (Використання нуля в цьому випадку є розумним, оскільки це не значення, яке буде використано в наступних математичних обчисленнях).
Тож Едвард запитує в коментарях "що робити, якщо користувач поставить 0?", І він виступає за те, щоб було добре, щоб отримати 0 взамін. Якщо користувач вводить нуль у суму, а ви хочете, щоб 0 повернулися, коли вони це роблять, тоді вам слід ввести код на рівні бізнес-правил, щоб отримати це значення і повернути 0 ... не мати спеціального випадку, де поділ на 0 = 0.
Це тонка різниця, але це важливо ... тому що наступного разу, коли хтось зателефонує вашій функції та очікує, що вона зробить правильно, і це зробить щось фанкі, що не є математично правильним, а просто обробляє конкретний край випадку, він має хороший шанс вкусити когось пізніше. Ви насправді не ділите на 0 ... ви просто повертаєте погану відповідь на погану запитання.
Уявіть, що я кодую щось, і я це накручую. Я мав би читати значення масштабу вимірювання випромінювання, але у випадку, коли я не передбачив, я читав у 0. Я потім скидаю своє значення у вашу функцію ... ви повертаєте мені 0! Ура, радіації немає! За винятком того, що він насправді є, і це просто те, що я проходив у поганому значенні ... але поняття не маю. Я хочу, щоб дивізія викинула помилку, оскільки це прапор, що щось не так.