I‘m gaining a newfound respect for triathletes. Their discipline and hard work already impressed me, but now that I’m training for the Great Chesapeake Bay Swim and a sprint triathlon on consecutive ... I've read about the difference between double precision and single precision.

Understanding the Context

However, in most cases, float and double seem to be interchangeable, i.e. using one or the other does not seem to affec... 20 Format %lf is a perfectly correct printf format for double, exactly as you used it. There's nothing wrong with your code.

Key Insights

Format %lf in printf was not supported in old (pre-C99) versions of C language, which created superficial "inconsistency" between format specifiers for double in printf and scanf. A double has a much higher precision due to it's difference in size. If the numbers you are using will commonly exceed the value of a float, then use a double. Several other people have mentioned performance isssues. That would be exactly last on my list of considerations.

Final Thoughts

Correctness should be your #1 consideration. From what I have read, a value of data type double has an approximate precision of 15 decimal places. However, when I use a number whose decimal representation repeats, such as 1.0/7.0, I find tha... Possible Duplicate: long double vs double I am unable to understand the difference between between long double and double in C and C++. Can anyone help? Promise.

But, in C++, when calling scanf and printf, the notation used to specify a double is "%lf", and that stands for long float, right? So while a float is less precise than a double, a LONG float (presumedly called long float because it can be "longer" by having more terms) is the same accuracy and therefore essentially the same thing? En double se pueden almacenar números más grandes y también más decimales. Con los números que has probado no se ve diferencia porque cout << redondea la representación interna para mostrar pocos decimales, y lo que ves en ambos casos es lo mismo, pero internamente no son iguales.