La Web del Programador: Comunidad de Programadores
 
    Pregunta:  62509 - DUDA SOBRE COMPORTAMIENTO DE DOUBLES Y SINGLES
Autor:  Martín Andrade Rentería
tengo un grid donde se vacían cantidades con decimales, el programa suma estas cantidades de una columna, pero en un momento ciertos números provocan que se aumenten decimales de más, mis cantidades son de solo 2 dígitos decimales por lo que se me hace extraño que el resultado tenga 5 decimales, para reproducir este comportamiento se puede usar el siguiente código:

'Empieza->
Dim i As Integer
Dim total As Single
Dim values(28) As String

values(0) = "4.3"
values(1) = "0.01"
values(2) = "0.01"
For i = 0 To 2
total = total + Val(Format(values(i)))
Next

MsgBox total
'<-termina

  Respuesta:  Carlos Arias
Bueno la opcion seria que redondeares el total que daria de la siguiente manera:

Dim i As Integer
Dim total As Single
Dim values(28) As String

values(0) = 4.3
values(1) = 0.01
values(2) = 0.01
For i = 0 To 2
total = total + values(i)
Next
MsgBox Round(total, 2)