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