VB字符串和整数比较大小

2025-02-14 10:04:01
推荐回答(5个)
回答1:

12345Dim m As IntegerDim n As Stringm = 3n = "1"MsgBox m < n
上面的代码弹出false
123m = 3n = "1"MsgBox m < n
上面的代码弹出true
类型的定义很重要,由于没有定义类型,聪明的VB会自己决定他的类型,所以在inputbox赋值时,由于这个函数返回的是string类型,所以n被定义为string,就是监视窗口看到的样子。但是在比较时,由于两个变量的类型不等,vb于是聪明的启用了某种规则,可能是将两者都变成数字,或都变成字符串,或者就是数字一定比字符串大,或者就是数字一定比字符串小……明白了吗?
至于这个规则是什么,可以查查MSDN中相关的说明。

回答2:

Dim m As Integer
Dim n As String
m = 3
n = "1"
MsgBox m < n

上面的代码弹出false

m = 3
n = "1"
MsgBox m < n

上面的代码弹出true


类型的定义很重要,由于没有定义类型,聪明的VB会自己决定他的类型,所以在inputbox赋值时,由于这个函数返回的是string类型,所以n被定义为string,就是监视窗口看到的样子。但是在比较时,由于两个变量的类型不等,vb于是聪明的启用了某种规则,可能是将两者都变成数字,或都变成字符串,或者就是数字一定比字符串大,或者就是数字一定比字符串小……明白了吗?

至于这个规则是什么,可以查查MSDN中相关的说明。

回答3:

这是因为你没有定义变量m和n的类型,VB中是默认为 Variant 类型,在比较时,如果 Variant 变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定。像期望的那样,算术运算子可以对 Variant 变量运算,其中包含数值或能被解释为数值的字符串数据。如果用 + 运算子来将 MyVar 与其他含有数字的 Variant 或数值类型的变量相加,结果便是一算术和。

如果你的程序中前面加上对变量类型的定义,如:
Dim m As Integer, n As String
程序运行时便会出错了。

回答4:

同类型才可比较。

回答5:

do while m