首先你的代码错误是因为那个空格造成的,这个楼上的已经说了,我就不说了。
现在说说a=val(text1.text)和a=text1是否一样的问题,如果Text1里面的内容是数字的话,那么这两个等式是一样的,这是因为Text是TextBox控件的默认属性,所以Text1.Text可以简写为Text1,另外由于a已经显式定义为Integer,所以VB在把text1赋值给a时会自动转换为Integer。因此a=val(text1.text)和a=text1所得到的a都是一样的(事实上a=val(text1.text)是先转为Double再转为Integer,多转了一次)。但是如果Text1里面的内容是空字符串或非数字字符串,则a=val(text1.text)不报错(a=0),而a=text1则报错(类型不匹配)。所以尽量用a=val(text1.text),这是规范的用法。
upc_ssogiv 说的是对的 ,text3后面多了个空格
你标题的问题:a=val(text1.text)和a=text1一样吗
a=text1.text 意思是说,text1的文本text等于a,那个点可以读成“的”(个人见解),就是说a=text1(控件)的text(文本内容),val是转换text1.text的内容为数值。
用val函数之前加个函数IsNumeric判断一下是否为合法的数字,如果不是不进行val转换
你的错误是text1或text2非合法的数字造成的
你的text3后面多了个空格。。。应该是text3.text。。。中间不能有空格的。。。
val指的是text的属性,和其他的不一样。