В стандартах C и C++ последнего десятилетия введен новый тип вещественных данных повышенной точности: long double. Типа данных тако точности нет ни в одном другом языке. Эксперимент (мои) показывают, что вычисления с long double достигают точности действительно на несколько порядков выше, чем double, не говоря уже о float.
(по крайней мере, это относится к компилятору GCC)
Вы можете сами проделать простенький эксперимент, на разных языках и с разными типами данных для представления:
for( i = 0; ; i++ ) {
double y1 = y + 1., y2 = ( y /= 10. ) + 1.;
if( y1 == y2 ) break;
}