web-dev-qa-db-fra.com

Comment convertir une réponse en deux décimales

Ceci est mon code et je veux que la sortie qui est txtA.Text et txtB.Text

Public Class Form1
    Private Sub btncalc_Click(ByVal sender As System.Object,
                              ByVal e As System.EventArgs) Handles btncalc.Click
      txtA.Text = Val(txtD.Text) / Val(txtC.Text) * Val(txtF.Text) / Val(txtE.Text)
      txtB.Text = Val(txtA.Text) * 1000 / Val(txtG.Text)
    End Sub
End Class
4
Husna5207

Essayez d’utiliser la fonction Format:

Private Sub btncalc_Click(ByVal sender As System.Object,
                          ByVal e As System.EventArgs) Handles btncalc.Click
  txtA.Text = Format(Val(txtD.Text) / Val(txtC.Text) * 
                     Val(txtF.Text) / Val(txtE.Text), "0.00")
  txtB.Text = Format(Val(txtA.Text) * 1000 / Val(txtG.Text), "0.00")
End Sub
7
Andrea

Pour les options de formatage, voir this

Dim v1 as Double = Val(txtD.Text) / Val(txtC.Text) *
                   Val(txtF.Text) / Val(txtE.Text)
txtA.text = v1.ToString("N2");
9
fnostro

Si vous avez un type numérique décimal ou similaire, vous pouvez utiliser: 

Math.Round(myNumber, 2)

EDIT: Donc, dans votre cas, ce serait:

Public Class Form1
  Private Sub btncalc_Click(ByVal sender As System.Object,
                            ByVal e As System.EventArgs) Handles btncalc.Click
    txtA.Text = Math.Round((Val(txtD.Text) / Val(txtC.Text) * Val(txtF.Text) / Val(txtE.Text)), 2)
    txtB.Text = Math.Round((Val(txtA.Text) * 1000 / Val(txtG.Text)), 2)
  End Sub
End Class
5
Douglas Barbin

Appelez-moi paresseux mais:

 lblTellBMI.Text = "Your BMI is: " & Math.Round(sngBMI, 2)

Ie: Label lblTellBMI affichera Votre IMC est: puis ajoutez la valeur d'une variable de type Single (sngBMI) sous forme de 2 points décimaux, en utilisant simplement le paramètre Méthode Math.Round.

La méthode Math.Round arrondit une valeur à l'entier le plus proche ou au nombre spécifié de chiffres décimaux.

Source: https://msdn.Microsoft.com/en-us/library/system.math.round(v=vs.110).aspx

2
vicsar

Couru dans ce problème aujourd'hui et j'ai écrit une fonction pour cela. Dans mon cas particulier, je devais m'assurer que toutes les valeurs portaient au moins 0 (d'où le nom "LT0") et étaient arrondies à deux décimales.

        Private Function LT0(ByVal Input As Decimal, Optional ByVal Precision As Int16 = 2) As Decimal

            ' returns 0 for all values less than 0, the decimal rounded to (Precision) decimal places otherwise.
            If Input < 0 Then Input = 0
            if Precision < 0 then Precision = 0 ' just in case someone does something stupid.
            Return Decimal.Round(Input, Precision) ' this is the line everyone's probably looking for.

        End Function
1
SEFL