EDIT: Je reçois beaucoup de downvotes récemment ... alors j'ai pensé que j'ajouterais simplement que cette réponse a été écrite avant que la question ne subisse sa dernière modification, où le retour de null était mis en surbrillance en option .. .qui semble très acceptable. Une partie de ma réponse s'adressait à des préoccupations comme celle d'Edwardo, dans les commentaires, qui semblait préconiser le retour d'un 0. C'est le cas contre lequel je me plaignais.
RÉPONSE: Je pense qu'il y a un problème sous-jacent ici, c'est que la division par 0 n'est pas légale. C'est une indication que quelque chose ne va pas fondamentalement. Si vous divisez par zéro, vous essayez de faire quelque chose qui n'a pas de sens mathématique, donc aucune réponse numérique que vous pouvez obtenir ne sera valide. (L'utilisation de null dans ce cas est raisonnable, car ce n'est pas une valeur qui sera utilisée dans des calculs mathématiques ultérieurs).
Edwardo demande donc dans les commentaires "et si l'utilisateur met un 0?", Et il préconise que ce soit correct d'obtenir un 0 en retour. Si l'utilisateur met zéro dans le montant et que vous voulez que 0 soit renvoyé lorsqu'il le fait, alors vous devez mettre du code au niveau des règles métier pour attraper cette valeur et retourner 0 ... pas de cas particulier où la division par 0 = 0.
C'est une différence subtile, mais c'est important ... parce que la prochaine fois que quelqu'un appelle votre fonction et s'attend à ce qu'elle fasse la bonne chose, et elle fait quelque chose de génial qui n'est pas mathématiquement correct, mais qui gère simplement le cas de bord particulier, il a un bonne chance de mordre quelqu'un plus tard. Vous ne divisez pas vraiment par 0 ... vous retournez simplement une mauvaise réponse à une mauvaise question.
Imaginez que je code quelque chose et je le foirais. Je devrais lire une valeur d'échelle de mesure de rayonnement, mais dans un cas de bord étrange que je n'avais pas prévu, j'ai lu 0. Je laisse ensuite ma valeur dans votre fonction ... vous me renvoyez un 0! Vive, pas de rayonnement! Sauf que c'est vraiment là et c'est juste que je passais dans une mauvaise valeur ... mais je n'en ai aucune idée. Je veux que la division lance l'erreur parce que c'est le drapeau que quelque chose ne va pas.