2

我有一个文本框,显示其他两个相乘的结果,在输入任何内容之前,该框显示 NaN,有没有办法让它显示“0”,甚至在任何相乘之前保持为空。

Dim thick1 As Double
Dim tb8 As Double
Dim result As Double
thick1 = Val(thickness1.Text)
tb8 = Val(TextBox8.Text)
result = thick1 / tb8
TextBox30.Text = FormatNumber(result, 3)

^ 上面的代码是我用于文本框的代码。

4

3 回答 3

0

这似乎是自动运行的事件或表单加载中的代码。如果文本框还没有值,那么result = thick1 / tb8将导致 Nan(不是数字),因为您不能除以零。

同样,假设一个事件或某事:

  If tb8 = 0 then
     Exit Sub
  else
     result = thick1 / tb8
     TextBox30.Text = result.ToString("G3")  

  End if

除了为 TryParse 转储 VAL 之外,请考虑打开 Option Explicit

于 2013-10-21T20:46:07.353 回答
0

另一种方法,试试这个:

TextBox30.Text = FormatNumber(result, 3).Tostring("n0")

我认为它应该显示 0 即使数字不存在(如NaN字符串)

MSDN:数字(“N”)格式说明符

如果没有,那么试试这个:

TextBox30.Text = FormatNumber(result, 3).ToString("0")

“0”零占位符

如果存在 1,则将 0 替换为相应的数字;否则,结果字符串中将出现零。

MSDN:自定义数字格式字符串

于 2013-10-21T20:50:23.683 回答
0

尝试这样的事情:

Dim result As Double
Dim thick1 As Double = CDbl(thickness1.Text)
Dim tb8 As Double = CDbl(TextBox8.Text)
If IsNumeric(thick1) AndAlso IsNumeric(tb8) AndAlso tb8 <> 0 Then
    result = thick1 / tb8
    TextBox30.Text = result.ToString("G3")
End If
于 2013-10-21T20:51:06.833 回答