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

VB.NET Discussion :

Problème de calcul


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut Problème de calcul
    Bonjour je comprend pas pourquoi le code qui suis se rend jusqu'au pas bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Dbl1 As Double = 0
                                Dim Dbl2 As Double = 0
                                Dim rep As Double = (Dbl2 * 100) / Dbl1
                                Console.WriteLine(rep)
                                If Not rep = Double.PositiveInfinity Then
                                    If Not rep = Double.NegativeInfinity Then
                                        If IsNumeric(rep) Then
                                            Console.WriteLine("Pas bon")
                                        End If
                                    End If
                                End If
    merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonjour,
    Parce que je ne crois pas que l'on ai inventé les divisions par 0

    Rep prend une valeur indéfinie.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    oui ça je savais déjà ...merci de t'en assurer ,mais
    1-dans ma variable rep j'arrive avec -1,#Inf et le code ne l'intercepte pas
    2-dans mon console.writeline j'obtiens Non numeric et le isnumeric ne l'intercepte pas encore ???


    je cherche juste une façon plus propre de relever l'exception que de dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not Dbl1=0 then
    ...code...
    end if

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Double.IsNaN(rep) Then 'Pour le cas d'une division de 0 par 0
        Console.WriteLine("Pas bon")
    End If
    Dans le cas ou le nombre à diviser est différent de 0 , une division par 0 retourne +l'infini

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,
    Citation Envoyé par Mario Rousson Voir le message
    1-dans ma variable rep j'arrive avec -1,#Inf et le code ne l'intercepte pas
    C'est ici que tu commets une erreur, ce n'est pas -1,#Inf (infini) mais -1,#IND (indéfini) detecté par la fonction IsNaN cité par rainui.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    En mathematique la division d'un quantite
    -"zero" par "zero" est indefinie
    -infini par infini (quelque soit le signe) est indefinie

    Ces 2 cas sont ranges dans l'Api .Net dans IsNan...

    MSDN
    Floating-point operations return NaN to signal that that result of the operation is undefined. For example, dividing 0.0 by 0.0 results in NaN.
    code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     If Double.IsNaN(0 / 0) Then
                Console.WriteLine("0/0  is not-a-number...")
            End If
            Dim rep1 As Double = Double.PositiveInfinity
            Dim rep2 As Double = Double.NegativeInfinity
            If Double.IsNaN(rep1 / rep2) Then
                Console.WriteLine("PositiveInfinity/NegativeInfinity is not-a-number.")
            End If
    A noter que l'ecriture de ton test devrait etre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     If Not Double.IsInfinity(rep) Then  'teste les 2 cas > 0 & < 0
                If IsNumeric(rep) Then
                    Console.WriteLine("Pas bon")
                End If
            End If
    bon code...

Discussions similaires

  1. Problème de calcule en SQL !
    Par FilipeVV dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 11h45
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

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