如何将答案转换为两个小数点

时间:2013-05-16 07:57:06

标签: vb.net

这是我的代码,我希望输出txtA.TexttxtB.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

6 个答案:

答案 0 :(得分:9)

有关格式化选项,请参阅this

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

答案 1 :(得分:7)

尝试使用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

答案 2 :(得分:5)

如果您有十进制或类似的数字类型,则可以使用:

Math.Round(myNumber, 2)

编辑: 所以,在你的情况下,它将是:

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

答案 3 :(得分:2)

叫我懒惰但是:

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

即:标签 lblTellBMI 将显示你的BMI是:然后追加 Single 类型变量的值( sngBMI < / em>)作为2个小数点,只需使用 Math.Round 方法。

Math.Round 方法将值舍入为最接近的整数或指定的小数位数。

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

答案 4 :(得分:1)

今天遇到这个问题,我为它编写了一个函数。在我的特定情况下,我需要确保所有值都至少为0(因此为“LT​​0”名称),并且四舍五入到小数点后两位。

        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

答案 5 :(得分:0)

如果您只想以特定格式打印小数点后2位的十进制数字,则无论本地人使用这种方式

dim d as double = 1.23456789
dim s as string = d.Tostring("0.##", New System.Globalization.CultureInfo("en-US"))