为了可读性和揭示意图,我会选择:
Dim mySingle as Single = CSng(a / b) ' CSng
使用A,你很清楚地说,我知道计算返回一个不同的类型,这就是我想要的。
至于性能-我运行了一个快速的微基准测试,每次测试100万次迭代,差别在毫秒到亚毫秒之间,对我来说是一个非常微小的优势
CSing
基准代码:
Sub Main()
Dim mySingle As Single
Dim a As Integer = 10
Dim b As Integer = 5
Dim iterations As Integer = 1000000
Dim sw As New Stopwatch()
sw.Start()
For i As Integer = 1 To iterations
mySingle = CSng(a / b) ' CSng '
Next
sw.Stop()
Console.WriteLine(String.Format("CSng(a / b) - {0}", sw.Elapsed))
sw.Reset()
sw.Start()
For i As Integer = 1 To iterations
mySingle = a * 1.0F / b ' x 1F '
Next
sw.Stop()
Console.WriteLine(String.Format(" a * 1.0F / b - {0}", sw.Elapsed))
End Sub