vb数字无法相加
发布网友
发布时间:2023-08-06 02:19
我来回答
共6个回答
热心网友
时间:2024-11-08 22:43
我来给你完美的解释:
代码的第一句:Dim a, b, c As Integer 只有c才是赋予了integer型,a和b是默认的variant变量(变体变量),如果要想a b c都赋予成integer型 必须这样写:
Dim a As Integer, b As Integer, c As Integer
这样你的结果就是输入后数值型数据相加的结果了..
按你的代码来,Dim a, b, c As Integer ,inputbox返回的结果是string型(字符串数据),这样a b的类型相应的就是字符串类型的了,当你a+b的时候返回的结果就是字符串相加的结果,并不是数值型数据相加(a输入3,b输入4,a+b 自然就是34了)
如果你想让a和b进行数*算,将a和b的值转换成数值型数据就可以了.用val函数
c=val(a)+val(b) 返回的结果就是7了..
热心网友
时间:2024-11-08 22:43
Dim a As Integer
Dim b As Integer
Dim c As Integer
就对了,你那种声明只有c才是数字
a,b 都是Variant,而inputbox返回的是string,所以a,b都是string,
因此a+b 就是两个string相加。
热心网友
时间:2024-11-08 22:44
VB中默认InputBox("a", "a") 返回的类型是字符型,
所以你输入的a 的值为3 ,实际上是字符"3"
b的为"4 ",+为字符连接,结果就变成了"34"
你可以这样改:
a = val(InputBox("a", "a") )
b = val(InputBox("b", "b") )
转化成数字,就没问题了。
热心网友
时间:2024-11-08 22:45
在VB6中 字符串连接符 有2种
一种是 + “+”是把两个字符串变成一个字符串 +即前后的数据类型都为字符串型 否则 +为数字运算符 所以 a +b = "3"+"4"= "34"是字符运算 非数字运算
另一种是 & &连接符可以把两种不同数据类型的数据连接成一个新的字符串类型数据
所以 a + b 会被系统首先默认为 "3"+"4"
使用下面的函数可以改变这种情况
c= val(a)+val(b)
这时c的结果就应该是7了
热心网友
时间:2024-11-08 22:45
这是VB的一大特点,易上手,但这样以后,规则就多了。像这个问题,其是只要有一个加数是字符,就是以字符相加,就等于是“&”。
一般用VB,要想是字符叠加,用“&”,也就是说,哪怕两加数都是整型,用了“&”以后也是叠加。但做数字加时,就一定要小心了。就VAL()的话,如果()中的有无法转为数字的,那就出错了。
热心网友
时间:2024-11-08 22:46
c=a+b改为c=val(a)+val(b)
因为inputbox内的数字默认为字符
val的作用是强制转换为数字
热心网友
时间:2024-11-08 22:43
我来给你完美的解释:
代码的第一句:Dim a, b, c As Integer 只有c才是赋予了integer型,a和b是默认的variant变量(变体变量),如果要想a b c都赋予成integer型 必须这样写:
Dim a As Integer, b As Integer, c As Integer
这样你的结果就是输入后数值型数据相加的结果了..
按你的代码来,Dim a, b, c As Integer ,inputbox返回的结果是string型(字符串数据),这样a b的类型相应的就是字符串类型的了,当你a+b的时候返回的结果就是字符串相加的结果,并不是数值型数据相加(a输入3,b输入4,a+b 自然就是34了)
如果你想让a和b进行数*算,将a和b的值转换成数值型数据就可以了.用val函数
c=val(a)+val(b) 返回的结果就是7了..
热心网友
时间:2024-11-08 22:44
Dim a As Integer
Dim b As Integer
Dim c As Integer
就对了,你那种声明只有c才是数字
a,b 都是Variant,而inputbox返回的是string,所以a,b都是string,
因此a+b 就是两个string相加。
热心网友
时间:2024-11-08 22:44
VB中默认InputBox("a", "a") 返回的类型是字符型,
所以你输入的a 的值为3 ,实际上是字符"3"
b的为"4 ",+为字符连接,结果就变成了"34"
你可以这样改:
a = val(InputBox("a", "a") )
b = val(InputBox("b", "b") )
转化成数字,就没问题了。
热心网友
时间:2024-11-08 22:45
在VB6中 字符串连接符 有2种
一种是 + “+”是把两个字符串变成一个字符串 +即前后的数据类型都为字符串型 否则 +为数字运算符 所以 a +b = "3"+"4"= "34"是字符运算 非数字运算
另一种是 & &连接符可以把两种不同数据类型的数据连接成一个新的字符串类型数据
所以 a + b 会被系统首先默认为 "3"+"4"
使用下面的函数可以改变这种情况
c= val(a)+val(b)
这时c的结果就应该是7了
热心网友
时间:2024-11-08 22:45
这是VB的一大特点,易上手,但这样以后,规则就多了。像这个问题,其是只要有一个加数是字符,就是以字符相加,就等于是“&”。
一般用VB,要想是字符叠加,用“&”,也就是说,哪怕两加数都是整型,用了“&”以后也是叠加。但做数字加时,就一定要小心了。就VAL()的话,如果()中的有无法转为数字的,那就出错了。
热心网友
时间:2024-11-08 22:46
c=a+b改为c=val(a)+val(b)
因为inputbox内的数字默认为字符
val的作用是强制转换为数字