从应试角度,综合列年改错题,两种最大的区别在于:
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"

转载于:https://www.cnblogs.com/zwl12549/archive/2007/07/09/811146.html