停止显示NaN的文本框

时间:2013-10-21 20:40:39

标签: vb.net visual-studio-2010

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

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)

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

另一种方式,试试这个:

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

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

MSDN: The Numeric ("N") Format Specifier

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

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

“0”零占位符

     

如果存在,则用相应的数字替换零;否则,结果字符串中会出现零。

MSDN: Custom Numeric Format Strings

答案 2 :(得分: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