Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
带判断的转换
显然任何类型的数据,都可以转换为字符型。
但是对于其它类型的数据,却有转换失败的可能,例如:
Dim s As String = "abc"
Dim v As Long = 123
Return CLng(s) +
v
如果在命令窗口执行上面的代码,会出现错误提示:字符串"abc"无法转换为长整数。
为了解决这个问题,我们可以采用另一种转换方法。
除了String(字符)类型外,所有的基本数据类型,都有一个TryParse方法,用于将其它类型的数据转换为本类型的数据。
语法
Type.TryParse(Value,Variant)
说明
Type:
目标数据类型,例如Date、Integer、Long、Double等等。
Value: 要进行转换的数据。
Variant:
用于存放转换结果的变量,变量的类型必须和Type指定的类型一致。
如果转换成功,则将转换结果存储在变量Variant中,并返回True,否则返回False。
例如:
Dim s As
string = "123.1"
Dim d
As
Double
Double.TryParse(s, d)
'将变量s的内容转换为数值,并存放在变量d中
Output.Show(d + 100) '输出结果是223.1
再例如:
Dim d As
Date '变量d用于存储转换结果
If
Date.TryParse("1999/12/31", d) Then '如果转换成功
Output.Show(d) '输出转换结果
Else
Output.Show("无效日期格式")
'给出错误提示
End
If
不好意思啊,我想要的是输入框中只能输入数字或小数,不是要转换,例如:我在Keyperss事件中输入
If Char.IsDigit(e.KeyChar) = False AndAlso Char.IsControl(e.KeyChar) = False Then
e.Cancel = True
End If
这样就只能输入整数,却不能输入小数,我想实现的只能输入整数和小数都能输入!
不好意思啊,我想要的是输入框中只能输入数字或小数,不是要转换,例如:我在Keyperss事件中输入
If Char.IsDigit(e.KeyChar) = False AndAlso Char.IsControl(e.KeyChar) = False Then
e.Cancel = True
End If
这样就只能输入整数,却不能输入小数,我想实现的只能输入整数和小数都能输入!
這樣也行:
If Val(e.KeyChar) = False AndAlso Char.IsControl(e.KeyChar) = False AndAlso e.KeyChar <> "0" Then
e.Cancel = True
End If