最近遇到了一个奇怪的现象,参见说明代码:
以上代码中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)
Dim a As String = "1000"2
Dim b As String = "1"3
Dim c As String = "6"4
Dim d As String5
Dim f As Long6

7
d = CStr(CLng(a) * CLng(b) / CLng(c))8
f = (CLng(a) * CLng(b) / CLng(c)).ToString9

10
MessageBox.Show(d)11
MessageBox.Show(f)以上代码中d 和f 的值并不相同。
使用CSTR()的时候,返回值并没有四舍五入,而使用.TOSTRING()的时候进行了四舍五入。
可见,这种情况下.TOSTRING()才是我们期待的结果,如果使用CSTR()的话将返回错误的值。
所以建议尽量使用VB.NET的函数,放弃VB老版本的函数。

浙公网安备 33010602011771号