什么是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)
答案 0 :(得分:2)
使用Decimal.TryParse
和Match.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
答案 1 :(得分:0)
奇怪的问题......
results.Text = (Math.Round(resistivity * 1000) / 1000).ToString()
=>如果您没有检查所有文本框实际包含数字的地方,那么您将获得一个例外...只是一个评论;)
答案 2 :(得分: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)