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 :

La conversion de la chaîne " " en type 'Double' n'est pas valide


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut La conversion de la chaîne " " en type 'Double' n'est pas valide
    , j'ai une fonction qui permet de mettre le format d'un montant sous la forme 125,125. Mais en essayant d'exécuter le code, il me sort le msg "La conversion de la chaîne " " en type 'Double' n'est pas valide". Voici le code de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Const FORMAT_CURRENCY = "#,###,###,##0.###############;(#,###,###,##0.###############)"
    Function MonFormat(ByVal Value As Double, ByVal NbDec As VariantType) As String
            Dim Dec As String
            Dim F As String
            Dec = ""
            If Val(NbDec) = "" Then
                MonFormat = Format(CDec(Value), FORMAT_CURRENCY)
            Else
                If Val(NbDec) > 0 Then Dec = "." & String.Format(NbDec, "0")
                F = "#,###,###,##0" & Dec & ";(#,###,###,##0" & Dec & ")"
                MonFormat = Format(CDec(Value), F)
            End If
        End Function
    Et voici où l'erreur vient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Val(NbDec) = "" Then
    J'ai besoin d'aide pour voir d'où provient le pb et comment le corriger?

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut
    Normal, tu essaies de comparer le retour de Val() (Double), avec "" (String).

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Comment le corriger?

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut
    Ben ça dépend de ce que tu veux faire avec ce If, tu peux utiliser un Try Catch pour gérer le cas où Val() n'a pas pu convertir la paramètre que tu lui donnes.
    Et dans le cas où tout se passe bien, gérer le cas où la valeur vaut 0.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Je vous explique ce que je veux faire. J'ai par exemple un champ "Montant d'un contrat" et un 2ème champ "Reste à payer". Je veux que lorsque je saisi le montant du contrat, il me met automatiquement le montant tout en respectant les chiffres après la virgule. Si vous connaissez une méthode plus simple que cette fonction, pouvez vous me la donnez? Sinon, comment corriger cette fonction pour qu'elle puisse fonctionner?

  6. #6
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Bah utilise le type Decimal pour la précision... Je ne vois pas à quoi sert ta fonction compliquée !

    Quel est "l'algorithme" utilisée pour convertir ton "montant d'un contrat" en "restant à payer" ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. [Débutant] la conversion de type 'DbNull' en type 'Double' n'est pas valide
    Par billinfopro dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/09/2014, 01h29
  2. [Débutant] Erreur La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par dragondu83 dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/07/2014, 20h06
  3. [Débutant] La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par amine_maximus dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/06/2012, 23h11
  4. Réponses: 6
    Dernier message: 04/07/2011, 15h53
  5. Réponses: 12
    Dernier message: 07/02/2011, 23h01

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