最近遇到了一个奇怪的现象,参见说明代码:
以上代码中d 和f 的值并不相同。
使用CSTR()的时候,返回值并没有四舍五入,而使用.TOSTRING()的时候进行了四舍五入。
可见,这种情况下.TOSTRING()才是我们期待的结果,如果使用CSTR()的话将返回错误的值。
所以建议尽量使用VB.NET的函数,放弃VB老版本的函数。
1 Dim a As String = "1000"
2 Dim b As String = "1"
3 Dim c As String = "6"
4 Dim d As String
5 Dim f As Long
6
7 d = CStr(CLng(a) * CLng(b) / CLng(c))
8 f = (CLng(a) * CLng(b) / CLng(c)).ToString
9
10 MessageBox.Show(d)
11 MessageBox.Show(f)
2 Dim b As String = "1"
3 Dim c As String = "6"
4 Dim d As String
5 Dim f As Long
6
7 d = CStr(CLng(a) * CLng(b) / CLng(c))
8 f = (CLng(a) * CLng(b) / CLng(c)).ToString
9
10 MessageBox.Show(d)
11 MessageBox.Show(f)
以上代码中d 和f 的值并不相同。
使用CSTR()的时候,返回值并没有四舍五入,而使用.TOSTRING()的时候进行了四舍五入。
可见,这种情况下.TOSTRING()才是我们期待的结果,如果使用CSTR()的话将返回错误的值。
所以建议尽量使用VB.NET的函数,放弃VB老版本的函数。