Valeur décimale Vérifier si il est nul
Je suis en train d'écrire une division de la méthode, qui accepte 2 paramètres.
public static decimal Divide(decimal divisor, decimal dividend)
{
return dividend / divisor;
}
Maintenant, si le diviseur est égal à 0, nous obtenons ne peut pas diviser par zéro, ce qui est correct.
Ce que je voudrais faire est de vérifier si le diviseur est 0 et si elle l'est, convertir 1. Est-il moyen de faire cela avec le fait d'avoir beaucoup de si les déclarations dans ma méthode? Je pense que beaucoup de si()s en rend l'encombrement. Je sais que mathématiquement, cela ne devrait pas être fait, mais j'ai d'autres fonctionnalités pour ce.
Par exemple:
if(divisor == 0)
{
divisor = 1;
}
return dividend / divisor;
Peut-il être fait sans le if()
déclaration?
Je suppose que c'est votre domaine de problème, mais considérez que votre code va être le retour à un résultat très différent si le diviseur fait de la modification mineure de 0.000001 0.0
Je préfère TON code, que le conditionnel if. Beaucoup plus facile à lire!! Et c'est ce que je veux
Je préfère TON code, que le conditionnel if. Beaucoup plus facile à lire!! Et c'est ce que je veux
OriginalL'auteur | 2009-05-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire une instruction conditionnelle if comme ça. C'est le même que dans IIF VB.net
Assurez-vous que vous enveloppez de votre deuxième moitié de l' () ou vous obtiendrez une erreur de division.
Non, j'ai eu un jeu supplémentaire vous pouvez le faire comme ceci: rendement de dividende / (diviseur == 0 ? 1 : diviseur);
Mais vous avez besoin de la () emballage de la valeur de la suite, d'autres sages, vous obtenez toujours l'erreur de division par zéro
non, vous n'avez pas besoin de deux ensembles, vous avez raison. Sur le revers de la médaille si j'ai parfois trouver de Jason approche plus lisible.
En cas de doute, ajouter des parenthèses.
OriginalL'auteur CodeLikeBeaker
À l'aide de la
?:
opérateurCette bonne aussi, mais j'ai comme d'autres l'un pour l'expansion future de but. Je donne +1 pour votre aide.
OriginalL'auteur Jakub Šturc
C'est à peu près la même chose qu'une instruction if, mais il est plus propre.
OriginalL'auteur Brandon
Vous pouvez créer votre propre type et de la surcharge de l'opérateur /pour obtenir le comportement souhaité, si vous voulez vraiment. Mettre en œuvre la conversion implicite des opérateurs pour éviter de jeter ou d'un type de conversion.
Je ne pense pas que ce serait une bonne idée, cependant, car il faudrait ajouter un peu de gestion d'exécution; avec le seul avantage que vous obtenez un code qui (sans doute) l'air un peu plus propre.
OriginalL'auteur driis