搜索到的:http://hi.baidu.com/%CD%F8%B3%E6360/blog/item/7676824a91f592f683025c47.html 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" 问题: - 红色字中所说的,我不明白多了1次是什么意思?
- Cstr 和Str,是各有所长;还是历史原因,造成Cstr 是Str的增强版(这样比方可以么?)
谢谢!!
1,采用Str将正数459转换为数字字符串的时候,前面有一个空位,得到的是" 459",所以如果用Len(" 459")=4,那么对该字符串在进行 逐位处理时,其循环次数就将多了一次。 2,CStr后参数类型比较广泛,Str后参数类型就是Long,而且Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串。
|