2009-08-20 5 views
0

Je m, développant un programme de calcul de dette 'mon problème est quand je dois calculer les mois pour rembourser la dette il vient à 28.04 et je dois l'obtenir à 29 Quelqu'un peut-il m'aider? Nous vous remercions à l'avanceJe dois arrondir une valeur dans vb.net

mon code ressemble à ceci:

Dim b, SubMtP As Integer 
    Dim outsUm, si 

    outsUm = TextBox1.Text 

    SubMtP = Format(Val(TextBox1.Text)/Val(TextBox2.Text), "0.00") 
    Math.Round(SubMtP + 1) 
    TextBox5.Text = Format(Val(TextBox4.Text)/12, "0.00") 

    For i As Integer = 1 To SubMtP 
+0

Vous appelez 'Math.Round', mais vous n'attribuez pas la valeur de retour à une variable, ni ne l'utilisez autrement. Le résultat est que la valeur arrondie est immédiatement rejetée. Qu'est-ce que vous essayez réellement de faire là-bas? –

Répondre

5

Utilisez Math.Ceiling.

1

La ligne

Math.Round(SubMtP + 1) 

ne fait rien (n'a pas d'effets secondaires) puisque vous n'êtes pas assinging ou en utilisant le résultat.

Si vous essayez d'obtenir de 28.04 à 29 alors vous voulez probablement Math.Ceiling. Il est difficile de dire ce que vous essayez de faire, mais vous voulez probablement

SubMtP = Math.Ceiling(SubMtP); 
2

Comme Pavel dit dans le commentaire, vous devez affecter le résultat, et vous devez utiliser Ceiling:

Dim result As Double = Math.Ceiling(SubMtP) 

Vous sont également fortement encouragés à basculer Option Strict On partout dans votre code pour permettre une vérification de type statique stricte. Cela entraînera quelques erreurs de compilation dans votre code ci-dessus qui devront être nettoyées. C'est bon parce que ces fragments de code sont des erreurs potentielles dans votre code et rendent difficile à maintenir et à comprendre.

+0

+1 pour 'Option Strict On' seul –

Questions connexes