Recently I have needed to truncate a decimal value to a set number of decimal places.
For example; If you wanted the number 55.446 to two decimal places rounding the number would return 55.45. Truncating the number to two decimal places returns 55.44.
To do this I created the function below. Pass in a decimal value and the number of decimal places you want the number truncated too and the function returns the value as a ‘Double’.
Public Function TruncTo(dblValue As Double, lngPlaces As Long) As Double'-------------------------------------------------------------------------
' Procedure : TruncTo
' Author : Matthew Sims
' Date : 08-Oct-2010
' Purpose : Truncate a decimal value to the requested number of decimal places
'-------------------------------------------------------------------------
'
On Error GoTo TruncTo_Error
If IsNumeric(dblValue) Then
TruncTo = Int(dblValue * 10 ^ lngPlaces) / 10 ^ lngPlaces
Else
TruncTo = 0
End If
On Error GoTo 0
Exit Function
TruncTo_Error:
' Add some error handling code here
End Function