Not necessarily, perhaps on your system .2 and .3 have opposite but equal errors. Try printing each of those constants (with a high precision) and see what they print.
For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <iostream>
#include <iomanip>
usingnamespace std;
int main()
{
double f = .2;
double e = .3 ;
double g = .1 + .1 + .1;
cout << fixed << setprecision(20);
cout << e << " " << f << endl;
cout << g << endl;
cout << f + e << endl;
return 0;
}