Erreur de convertion de double en tostring

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. 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. 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. 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
    1. 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
      1. oulah je comprend plus tu essaie de transformer un string en double ou un double en string ??
        0
        1. 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
      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. 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