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 :

Résultat de l'opérateur Log()


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Résultat de l'opérateur Log()


    Je sais pas vraiment comment interpréter le résultat que me retourne l'opérateur Log():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Math.Log(0.16022) ^ 1.5
    Non numérique
    Pourtant il me faut une valeur. C'est pour la formule suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (-1.44 * (0.16022 ^ 2)) + (1.517 * (1 / 0.16022)) + (15.7 * (Math.Log(0.16022) ^ 1.5))
    J'avoue que les maths et moi ça n'a jamais été une histoire d'amour


    d'avance
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    le "souci" provient de l'opérateur ^ qui se résout en un appel à Math.Pow dont la documentation spécifie bien que pour un Math.Pow (x, y) avec x < 0 (ce qui est le cas d'un Math.Log inférieur à 1) et y non entier ça renverra NaN.
    Quant à comment faire autrement là je ne sais pas peut-être avec un Math.Log(0.1622, 1.5) si (log(x))y revient à calculer logy(x)

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Comment interpréter cette valeur dans une variable Double ?
    C'est le retour que j'ai via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Sub Main()
            Dim log As Double = Math.Log(0.126986)
            Dim logPow As Double = Math.Pow(log, 1.5)
     
            Console.WriteLine((-1.44 * (0.126986 ^ 2)) + (1.517 * (1 / 0.126986)) + (15.7 * (Math.Log(0.126986) ^ 1.5)))
     
            Pause()
        End Sub
    où:
    log = -2.0636784348204769
    pow = -1.#IND
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Le résultat de l'opération n'est pas possible : Math.Log(0.126986) ^ 1.5 revient à faire une racine carrée d'un nombre négatif.
    Tu peux tester le résultat avec la methode static Double.IsNaN(x)

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    En fait je me suis trompé ou presque, on m'avait pas dit qu'il y avait un test à faire selon la valeur de "h" et du coup j'entre dans le cas d'une autre formule qui elle fonctionne très bien...

    Désolé du dérangement


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Le résultat de l'opération n'est pas possible : Math.Log(0.126986) ^ 1.5 revient à faire une racine carrée d'un nombre négatif.
    Tu peux tester le résultat avec la methode static Double.IsNaN(x)
    Ça veut juste dire que c'était pas possible dans mais dans par contre aucun souci et d'ailleurs en utilisant Complex.Pow et Complex.Log ça fonctionne sans problème ; bon oui je chipote mais j'aime bien ça surtout pour un problème de lecture des "consignes" au final

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Sehnsucht Voir le message
    Ça veut juste dire que c'était pas possible dans mais dans par contre aucun souci et d'ailleurs en utilisant Complex.Pow et Complex.Log ça fonctionne sans problème ; bon oui je chipote mais j'aime bien ça surtout pour un problème de lecture des "consignes" au final
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. Résultat non attendu de l'opérateur Like
    Par idrysse31 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/03/2010, 12h01
  2. Réponses: 2
    Dernier message: 30/11/2009, 11h05
  3. opérateur de division pour retour du résultat sous forme entière
    Par maroco31 informatik dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2007, 16h18
  4. Logging avec opérateur <<
    Par tnarol dans le forum C++
    Réponses: 12
    Dernier message: 27/03/2007, 18h32
  5. Réponses: 1
    Dernier message: 01/01/2007, 13h17

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