IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment éviter la division par zéro?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut Comment éviter la division par zéro?
    Bonjour Tous le monde,

    J'ai un code C# avec des Datatables, où j'effectue des opérations sur quelques colonnes, voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMLT_Evolution_sept_10.Expression = ("(CMLT_oct_10 - CMLT_sept_10)/CMLT_sept_10");
    Toutefois lorsque la colonne CMLT_sept_10 contient un zéro au niveau d'une case, l'exécution génère une erreur. Est ce que quelqu'un pourrait m'indiquer comment contourner ce problème?

    Merci

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    ben soit tu travailles dans un try et tu catch les exceptions DivideByZeroException soit tu contrôles la valeur de ton diviseur avant....

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Ou sinon tu peux définir une expression un peu plus avancée du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMLT_Evolution_sept_10.Expression = ("(CMLT_oct_10 - CMLT_sept_10)/IIF(ISNULL(CMLT_sept_10, 0)=0, 1, CMLT_sept_10)");
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMLT_Evolution_sept_10.Expression = ("IIF(ISNULL(CMLT_sept_10, 0)=0, NULL, (CMLT_oct_10 - CMLT_sept_10)/CMLT_sept_10");
    Perso je préfère la seconde possibilité

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut
    Citation Envoyé par ostenhard Voir le message
    Ou sinon tu peux définir une expression un peu plus avancée du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMLT_Evolution_sept_10.Expression = ("(CMLT_oct_10 - CMLT_sept_10)/IIF(ISNULL(CMLT_sept_10, 0)=0, 1, CMLT_sept_10)");
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMLT_Evolution_sept_10.Expression = ("IIF(ISNULL(CMLT_sept_10, 0)=0, NULL, (CMLT_oct_10 - CMLT_sept_10)/CMLT_sept_10");
    Perso je préfère la seconde possibilité
    Merci pr la réponse, ça fonctionne bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment contourner la "Division par zéro" ?
    Par Just-Soft dans le forum SQL
    Réponses: 10
    Dernier message: 05/05/2011, 17h17
  2. [CR][VS.NET]Division par zéro
    Par San Soussy dans le forum SDK
    Réponses: 2
    Dernier message: 31/08/2005, 14h40
  3. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 17h33
  4. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo