示例代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(Val(TextBox1.Text), "Val of text input")
End Sub
End Class
无论如何出于简单的好奇心,我想知道为什么会这样做?
来自其他一些帖子&个人经验我知道VAL(表达)不推荐&只是VB6时代的遗留功能。我试过其他所有字母和字母;没有人引起这个问题,我也试过了几个变种&它在d或e之后出现任何数字,添加许多零(似乎是它的倍增)。我理解这个值可能会溢出数据类型VAL放入它。我看到e是子过程的默认变量,所以这可能是原因,但我无法弄清楚d的任何逻辑。
请注意我是VB.NET的新手,刚刚读完大学课程&没有构建任何实际的应用程序。此外,我们的老师似乎没有告诉我们我非常感兴趣的错误处理,因为我目前的工作情况有一些相当旧的应用程序有问题。还希望任何推荐的错误处理文章/读物
答案 0 :(得分:6)
Val()函数“将字符串中包含的数字作为适当类型的数值返回”(来自http://msdn.microsoft.com/en-us/library/k7beh1x9(v=vs.71).aspx)。 如果你设置一个像5exxx的字符串值,它意味着5 * 10 ^ xxx;但要注意:函数返回一个double和double大约从±5.0 x 10 ^ -324到±1.7 x 10 ^ 308;所以,例如,字符串5e307工作,但5e308不工作,返回溢出。 如果你使用其他一些字母“函数停止读取第一个字符处的字符串,它无法识别为数字的一部分”,所以它不会返回溢出。
我希望它有所帮助。祝新年快乐!