vb的label的caption可以直接加数值函数吗

不用引号可以吗
label.caption=int((999-100+1)*rnd+100)是对的吗
为什么label1.caption=str(int((999-100+1)*rnd+100))是错的

两种写法都是正确的,不过如果引用label.caption的数值计算时应该要把他转换为数字类型的才行。
如label1.caption=val(label2.caption)+val(label3.caption)

你所说的错误可能是你的程序label1名称和控件名称不一致。
第一句label.caption=int((999-100+1)*rnd+100)
控件名称是label
第二句label1.caption=str(int((999-100+1)*rnd+100))
控件名称是label1追问

比如说要引用label1.caption的值就要把它转换为数值型
label4.caption=int((999-100+1)*rnd+100)

text3.text=label4.caption
就是对的
而在int前加上str就是错误的了

追答

加上也不会出错。

追问

你不是说引用时必须是数值型的吗

追答

label1.caption或text3.text显示的都是字符类型,如果需要用来做为数字计算就需要转化为数字类型才行。
举个例子
Label1.Caption = 3 '这里3是数字类型,但是把他赋予Label1后系统自动把他当作字符的形式了。
Label2.Caption = 4
Label3.Caption = Label1.Caption + Label2.Caption 'Label3.Caption显示的结果是34
Label3.Caption = Val(Label1.Caption) + Val(Label2.Caption) 'Label3.Caption显示的结果是7

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-10
实例1、
Label1.Caption = 3 '这里3是数字类型,但是把他赋予Label1后系统自动把他当作字符的形式了。
Label2.Caption = 4
Label3.Caption = Label1.Caption + Label2.Caption 'Label3.Caption显示的结果是34
Label3.Caption = Val(Label1.Caption) + Val(Label2.Caption) 'Label3.Caption显示的结果是7

实例2、
Dim t As Long '//你没有定义这个全局变量,导致Command1_Click里和Form_Load里的t不是同一个变量
Form_Load
Private Sub Command1_Click()
Label1.Caption = t
t = t + 1
End Sub

Private Sub Form_Load()
t = 0
End Sub本回答被网友采纳
第2个回答  2013-10-31
就单独这两句来说,都是对的。
你出错可能是其他地方有问题。
把你完整代码截图出来看看。
第3个回答  2013-10-31
label.caption

label1.caption

不同
相似回答