A volte usando i double ottengo risultati inattesi

Ad esempio:

double x = 1.025
double y = 1-x;

orbene se leggo y.ToString() mi da -0.0249999999999 anzichè un atteso -0.025

Qualcuno mi sa spiegare il perchè ed eventualmente come risolvere?