Cstr 和Str有什么区别
从应试角度,综合列年改错题,两种最大的区别在于:
Cstr在将正数转换为数字字符串时,不在其前加:前导空格来暗示其正号;
而Str在将正数转换为数字字符串时,返回的字符串包含一前导空格暗示有一正号。
举例如下:
Dim i As Single
Dim cstr1 As String
Dim str1 As String
i = 10.3
cstr1 = CStr(i)
str1 = Str(i)
Print Len(cstr1), Len(str1) '输出:4 5
i = -10.3
cstr1 = CStr(i)
str1 = Str(i)
Print Len(cstr1), Len(str1) '输出:5 5
简单的讲:
Cstr(10.3)="10.3" Str(10.3)=" 10.3"
Cstr(-10.3)="-10.3" Str(-10.3)="-10.3"
改错中,要当心,如果采用Str将正数转换为数字字符串,那么对该字符串在进行
逐位处理时,其循环次数将多了一次。
另外:
按照MSDN介绍,通常Cstr后参数类型比较广泛,即:可以将Boolean,Date,Empty,数值转化为字符串。
而str后参数通常应该为数值。
但是根据实际测试,也不尽然。
请看下例:
Private Sub Command1_Click()
Dim t As Boolean
Print Str(t) '输出 False(前面有空格)
Print CStr(t) '输出False(前面没有空格)
End Sub
最后输出结果是:
False
False
因此,Str总会在其参数前加上一位用于存放符号位,当然如果参数为负数,其已经包含负号,那么就不加了。
如: str("-10.3")="-10.3"