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?