一段代码中有些地方不明白,小菜求人解答
假如求两数之和:
代码:
Private Sub Command1_Click()
Dim a,b As double 或者Integer
a = Text1.text
b = Text2.text
Msgbox = "两数之和是:" & Val(a) + Val(b) '我不明白的是为什么要加上Val这个函数? 直接a+b不行么?
End Sub
[最优解释]
一样的。既然已经定义了a和b的类型,如果在text中输入了文本就会在给a b赋值时出错,所以运行到msgbox 时一定是两个数字,当然不用加val函数了。
[其他解释]
楼主text1.text啥意思你懂不?
楼主你用过EXCEL吗?知道EXCEL里面格式,有文本的,有数值的吗?你要算东西,要把EXCEL格的数字转为“数值型”,文本型会不准。甚至不能保留两位小数点。
就是从文本框获得一个值。
而往文本框里输入数字,比如在中文全角下输入,会输入成方格的内容,即不是数值。
而文本的计算显然不是你要的结果,将这个输入的值用val函数转换一下,就会把“文本格式”的字符转为相应数字型的。就可以做数学的运算。
[其他解释]
楼下,接,
[其他解释]
不管是在VB6,还是.NET里,只要你看到这些TEXT值,都是字符型。VAL是将字符类型转成Double类型。
[其他解释]
dim a,b as integer
等价于
dim a
dim b as integer
所以,你的代码段里的变量a是Var类型的。
到了a = Text1.Text这里,会发生隐式转换,将a的类型转化为字符串类型(b的那一行也有转换)。这就是弱类型语言的特点。
到了下面显示结果的时候a,b都是字符串,不转换类型的话,就是拼接字符串。
[其他解释]