Adição de valores duplos inconsistentes

Me deparei com o seguinte problema ao desenvolver algum mecanismo de valor de regra de engenharia usando a implementação 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

'A condição acima retorna false porque o valor da soma é 3.3000000000000003 em vez de 3.3

Parece que o 15º dígito é de ida e volta. Alguém pode dar uma explicação melhor sobre este pls.

É Math.Round (...) única solução disponível OU existe outra coisa que eu também possa tentar?

questionAnswers(7)

yourAnswerToTheQuestion