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. 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... 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.

Key Insights

Several other people have mentioned performance isssues. That would be exactly last on my list of considerations. Correctness should be your #1 consideration. 20 Format %lf is a perfectly correct printf format for double, exactly as you used it. There's nothing wrong with your code.

Final Thoughts

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. 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? Using long double I get 18/19 = 0.947368421052631578..., and 947368421052631578 is the repeating decimal.

Using double I get 0.947368421052631526... However, the former is correct. Why such an inco... float e double são mais rápidos, eficientes e econômicos do que os BigDecimal s do Java; não posso afirmar muito sobre o Decimal do C#, mas creio que para multiplicação seja muito mais leve.