Convert a double to fixed decimal point in C++

tree-hacker picture tree-hacker · Oct 2, 2010 · Viewed 7.7k times · Source

I have a double variable in C++ and want to print it out to the screen as a fixed decimal point number.

Basically I want to know how to write a function that takes a double and a number of decimal places and prints out the number to that number of decimal places, zero padding if necessary.

For example:

convert(1.235, 2)

would print out

1.24

and

 convert(1, 3)

would print out

1.000

so the function works as

convert(number as double, number of decimal places)

and simply prints out the required value to standard output (cout).

Does anyone know how to do this?

Thanks in advance.

Answer

tc. picture tc. · Oct 2, 2010

Assuming I'm remembering my format strings correctly,

printf("%.*f", (int)precision, (double)number);