0

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)
4

3 回答 3

2

使用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
于 2013-05-22T21:17:09.343 回答
0

第一:使用数字控件

不要将文本框用于十进制值,这是一种非常糟糕的做法

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

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

第二:考虑你需要什么

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

圆形的:

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

于 2013-05-22T21:28:11.380 回答
0

奇怪的问题...

基本的 :

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

在 TextBox15 中写“blabla”怎么样?

=>如果你不检查你所有的文本框实际上包含数字的地方,你会得到一个例外......只是一个评论;)

于 2013-05-22T21:16:45.113 回答