vb中sorted属性仅对字符数据按升序排列,因此要把位数不同的数值数据转化成位数相同的数字字符数

vb中sorted属性仅对字符数据按升序排列,因此要把位数不同的数值数据转化成位数相同的数字字符数据,才能用sorted属性。所以书上在列表框中两位数和三位数的比较里把两位数前面加了空格。这是什么意思 我看不大懂。

它是按字符编码大小排序的,在排序数字字符时,与数字串表示的大小不完全一致的。比如“2” 比"1" 大,同样“2” 也比“10”大。
如下面两个表达式,一个返回true,一个返回False,字符串比较与数值比较不同的。
Msgbox "2" > "10"
Msgbox 2>10

所以短的数字串前面补0或空格,就纠正过来了,如“02” 就比“10” 小了。
字符串比较的是字符编码大小,"2" > "10" 相当于 Asc("2") >Asc( "10")。当然它们是逐位比较相同位的单个字符,直到比出大小时即返回结果。追问

补空格的话是利用空格的ascii码比数字小对吗

追答

是啊,怎么比较能明白吗,先比第一个字符,空格ascii 小于“1” 的ascii码就返回结果,如果同为空格就比较下一个。

追问

嗯嗯 这个我懂 谢谢你啦

嗯嗯 这个我懂 谢谢你啦

温馨提示:答案为网友推荐,仅供参考
相似回答