Cstr 和Str有什么区别

来源:百度文库 编辑:神马文学网 时间:2024/04/28 07:45:51
Cstr 和Str有什么区别  str

Str 函数    返回代表一数值的 Variant (String)。语法Str(number)必要的 number 参数为一 Long,其中可包含任何有效的数值表达式。说明当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正,返回的字符串包含一前导空格暗示有一正号。使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式。与 Str 不同的是,Format 函数不包含前导空格来放置 number 的正负号。注意 Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串。

-----------------------------------------------------------------------------------------------

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"