Erreur de convertion de double en tostring

kouka34 Messages postés 48 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

svp je suis débutante en vb.net je crée un mini projet pour le calcul d'un amortissement de crédit
et j'ai le code suivant:

j'ai créer une fonction pour le calcul d'un montant d'echeance
_________________________________________________________
Function calculMontant_ech(ByVal c As Double)

montant = Double.Parse(montcredit.Text)
amortissement = Double.Parse(boite_amorti.Text)
taux_inetr = Double.Parse(boite_taux.Text)
Dim int As Double
Dim mnt As Double
Dim t As Double

t = ((taux_inetr / 100) / 12) + 1
int = montant * ((taux_inetr / 100) / 12)
mnt = 1 - (t ^ -(amortissement))
MontEchéance = int / mnt
c = MontEchéance
Return c

End Function
________________________________
apres je veus que cette valeur s'affiche dans un textbox en form_load
comme suit:
BoîteTauxEffectif.Text = calculMontant_ech(montant).ToString()
et ca me donne une erreur au niveau de type de la variable montant
aidez moi svp!

6 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Function calculMontant_ech(ByVal c As Double)

    c = 0
    Dim montant as double

    ' TryParse renvoie Faux si la conversion est impossible,
    ' sinon le conversion est dans la variable montant
    If (Double.TryParse(montcredit.Text), montant) Then
    Dim amortissement as Double
    If (Double.TryParse(boite_amorti.Text), amortissement) Then
    Dim taux_inetr as Double
    If (Double.TryParse(boite_taux.Text), taux_inetr) then
    Dim int As Double
    Dim mnt As Double
    Dim t As Double

    t = ((taux_inetr / 100) / 12) + 1
    int = montant * ((taux_inetr / 100) / 12)
    mnt = 1 - (t ^ -(amortissement))
    ' Évite les accents dans le code
    MontEcheance = int / mnt
    c = MontEcheance
    End If
    End If
    End If

    Return c

    End Function

    K
    1
    1. Utilisateur anonyme
       
      Function calculMontant_ech(ByVal c As Double) As Double 
      
      c = 0 
      Dim montant As Double 
      
      ' TryParse renvoie Faux si la conversion est impossible, 
      ' sinon le conversion est dans la variable montant 
      If (Double.TryParse(montcredit.Text), montant) Then 
        Dim amortissement As Double 
        If (Double.TryParse(boite_amorti.Text),  amortissement) Then 
          Dim taux_inetr As Double 
          If (Double.TryParse(boite_taux.Text), taux_inetr) Then 
            Dim int As Double 
            Dim mnt As Double 
            Dim t As Double 
      
            t = ((taux_inetr / 100) / 12) + 1 
            int = montant * ((taux_inetr / 100) / 12) 
            mnt = 1 - (t ^ -(amortissement)) 
            ' Évite les accents dans le code 
            MontEcheance = int / mnt 
            c = MontEcheance 
          End If 
        End If 
      End If 
      
      Return c 
      
      End Function  
      


      Ne connaissant pas les aboutissant :

      1.) Pourquoi tu passe en paramètre une variable qui est affecte par la ligne :
      c = MontEcheance et qui est retournée par la fonction
      A-t-elle une valeur de départ ?

      J'écrirais plutôt :

      Function calculMontant_ech() As Double 
      
      Dim c As Double = 0 
      Dim montant As double 
      
      ' TryParse renvoie Faux si la conversion est impossible, 
      ' sinon le conversion est dans la variable montant 
      If (Double.TryParse(montcredit.Text), montant) Then 
        Dim amortissement As Double 
        If (Double.TryParse(boite_amorti.Text),  amortissement) Then 
          Dim taux_inetr As Double 
          If (Double.TryParse(boite_taux.Text), taux_inetr) Then 
            Dim int As Double 
            Dim mnt As Double 
            Dim t As Double 
      
            t = ((taux_inetr / 100) / 12) + 1 
            int = montant * ((taux_inetr / 100) / 12) 
            mnt = 1 - (t ^ -(amortissement)) 
            ' Évite les accents dans le code 
            ' Méfie-toi des division par zéro 
            MontEcheance = 0 
            If (mnt > 0 ) Then 
       MontEcheance = int / mnt 
            End If 
            c = MontEcheance 
          End If 
        End If 
      End If 
      
      Return c 
      
      End Function  
      


      K
      0
  2. 0kid0ki Messages postés 192 Statut Membre 8
     
    Bonjour,

    Essaye :
    varIntermédiaire = calculMontant_ech(montant)
    BoîteTauxEffectif.Text = varIntermédiaire.ToString()
                          ou varIntermédiaire & ""
    


    petit tips, n'applique jamais de méthode sur le résultat d'une fonction
    ex : f1().m1() INTERDIT PAR LA CONVENTION DE GENEVE !!!
    (var.m1().m2() ou var.m1().arg = "kikoo" AUTORISEE)

    Cordialement,
    0kid0ki
    0
  3. kouka34 Messages postés 48 Statut Membre 2
     
    merci bcp mais ca n'a pas marché il y'a encore l'erreur
    en sachat que j declaré:
    Private montant As Double

    et dans la fonction:

    j'ai fait
    montant = Double.Parse(montcredit.Text)

    j'ai fait ce que tu m'a dis mais il y'a encore l'erreur au niveau de
    montant = Double.Parse(montcredit.Text)

    erreur:Input string was not in a correct format.
    0
  4. 0kid0ki Messages postés 192 Statut Membre 8
     
    oulah je comprend plus tu essaie de transformer un string en double ou un double en string ??
    0
    1. 0kid0ki Messages postés 192 Statut Membre 8
       
      Je viens de relire et j'ai compris ton dernier message, alors apparement c'est ton "montcredit.Text" qui nous embête, vérifie son format !!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kouka34 Messages postés 48 Statut Membre 2
     
    un double tostring
    0
  7. kouka34 Messages postés 48 Statut Membre 2
     
    puisque la valeur que retourne la fonction est de type double et je vaux l'afficher dand la form_looad dans un textbox tu vois
    0
    1. 0kid0ki Messages postés 192 Statut Membre 8
       
      oui oui mais comme dis plus tôt revois le format de ton moncredit.text !!
      il faut que ce soit que des chiffres et au max 1 point
      0