Search code examples
c++floating-pointprecisioniostream

Printing the correct number of decimal places with cout


I have a list of float values and I want to print them with cout with 2 decimal places.

For example:

  • 10.900 should be printed as 10.90
  • 1.000 should be printed as 1.00
  • 122.345 should be printed as 122.34

How can I do this?

(setprecision doesn't seem to help in this.)


Solution

  • With <iomanip>, you can use std::fixed and std::setprecision

    Here is an example

    #include <iostream>
    #include <iomanip>
    
    int main()
    {
        double d = 122.345;
    
        std::cout << std::fixed;
        std::cout << std::setprecision(2);
        std::cout << d;
    }
    

    And you will get output

    122.34