Adición de valores dobles inconsistentes

e encontré con el siguiente problema al desarrollar un motor de valor de reglas de ingeniería utilizando la implementación eval (...).

    Dim first As Double = 1.1
    Dim second As Double = 2.2
    Dim sum As Double = first + second
     If (sum = 3.3) Then
        Console.WriteLine("Matched")
    Else
        Console.WriteLine("Not Matched")
    End If

'La condición anterior devuelve falso porque el valor de la suma es 3.3000000000000003 en lugar de 3.3

Parece que el decimoquinto dígito es de ida y vuelta. Alguien puede dar una mejor explicación sobre este pls.

¿Es Math.Round (...) la única solución disponible O hay algo más que también puedo intentar?

Respuestas a la pregunta(7)

Su respuesta a la pregunta