四舍五入文本框结果VB



VB中将文本框中的结果四舍五入到三位小数的方法是什么,例如1.0030302到1.0003

下面是结果控制按钮的代码…

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim resistivity As Double
    results.Show()
    resistivity = "1" / (Val(TextBox15.Text) + Val(TextBox30.Text) + Val(TextBox29.Text) + Val(TextBox28.Text) + Val(TextBox27.Text) + Val(TextBox26.Text) + Val(TextBox25.Text) + Val(TextBox24.Text) + Val(TextBox16.Text))
    results.Text = Convert.ToString(resistivity)

使用Decimal.TryParseMatch.Round:

Dim resistivity As Decimal
Dim val1, val2, val3 As Decimal
If Decimal.TryParse(TextBox1.Text, val1) AndAlso Decimal.TryParse(TextBox2.Text, val2) AndAlso Decimal.TryParse(TextBox3.Text, val3) Then
    resistivity = Math.Round(1/ (val1 + val2 + val3), 4)
End If

奇怪的问题…

基本:

    results.Text = (Math.Round(resistivity * 1000) / 1000).ToString()

在TextBox15中写"blabla"怎么样?

=>你将得到一个异常,如果你不检查的地方,所有的文本框实际上包含数字…)

首先:使用数字控制

不要使用小数文本框,这是一个非常糟糕的做法。

为什么这是一个不好的做法?

  • 用户可以输入字母
  • 您需要自己验证小数

第二步:考虑你需要什么

根据您的需要,有三种主要的数学方法(示例包含在链接中):

轮:

Math.Round(yourNumber,4)
http://msdn.microsoft.com/en-us/library/zy06z30k.aspx

上限:

Math.Ceiling(yourNumber,4)
http://msdn.microsoft.com/en-us/library/system.math.ceiling.aspx

地板:

Math.Floor(yourNumber,4)
http://msdn.microsoft.com/en-us/library/9a6a2sxy.aspx

相关内容

最新更新