And a little faster
Public Function TruncateNew(ByVal source As Double, ByVal decimals As Integer) As Double
Dim i As Integer
Dim difference As Double
difference = 2
For i = 1 To decimals
difference = difference * 10
Next
difference = 1 / difference
Return Math.Round(source - difference, decimals)
End Function
time : 11.1 seconds