Une petite question sur la précision de calcul,

j'ai trouvé pas mal de messages sur le forum qui parlent de ce problème mais pas de réponse que je comprenne vraiment.
Voilà un exemple tout simple que je ne comprend pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
double a = 230.13075;
    double b = 178.17765;
 
    double result = a - b;
Dans ce cas result vaut 51.953100000000006
Je ne sais pas trop comment corriger le problème ... pour un calcul aussi simple !

Et avec des float c'est pire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
float a = 230.13075f;
    float b = 178.17765f;
 
    float result = a - b;
Result vaut 51.95311 au lieu de 51.9531

Est-ce que quelqu'un à une méthode claire pour avoir un calcul exact ?