1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Sub test2()
Debug.Print MyRound2(1.666666666, 0)
Debug.Print MyRound2(1.555555555, 0)
Debug.Print MyRound2(1.666666666, 1)
Debug.Print MyRound2(1.555555555, 1)
Debug.Print MyRound2(1.666666666, 2)
Debug.Print MyRound2(1.555555555, 2)
Debug.Print MyRound2(1.666666666, 3)
Debug.Print MyRound2(1.555555555, 3)
Debug.Print MyRound2(1.666666666, 4)
Debug.Print MyRound2(1.555555556, 4)
End Sub
Function MyRound2(V, D) As Double
Dim N As String
Dim P As String
N = Replace(V, ".", ",")
P = InStr(N, ",")
For i = Len(N) To P + 1 + D Step -1
If Int(Mid(N, i, 1)) < 6 Then
Mid(N, i, 1) = 0
Else
If Mid(N, i - 1, 1) <> "," Then
Mid(N, i - 1, 1) = Mid(N, i - 1, 1) + 1
Mid(N, i, 1) = 0
Else
Mid(N, i - 2, 1) = Mid(N, i - 2, 1) + 1
Mid(N, i, 1) = 0
End If
End If
Next
MyRound2 = N
End Function |
Partager