Two decimal places using printf( )

前端 未结 4 877
攒了一身酷
攒了一身酷 2020-12-24 10:34

I\'m trying to write a number to two decimal places using printf() as follows:

#include 
int main()
{
  printf(\"When this number:         


        
相关标签:
4条回答
  • 2020-12-24 11:01

    For %d part refer to this How does this program work? and for decimal places use %.2f

    0 讨论(0)
  • 2020-12-24 11:02

    Try using a format like %d.%02d

    int iAmount = 10050;
    printf("The number with fake decimal point is %d.%02d", iAmount/100, iAmount%100);
    

    Another approach is to type cast it to double before printing it using %f like this:

    printf("The number with fake decimal point is %0.2f", (double)(iAmount)/100);
    

    My 2 cents :)

    0 讨论(0)
  • 2020-12-24 11:03

    Use: "%.2f" or variations on that.

    See the POSIX spec for an authoritative specification of the printf() format strings. Note that it separates POSIX extras from the core C99 specification. There are some C++ sites which show up in a Google search, but some at least have a dubious reputation, judging from comments seen elsewhere on SO.

    Since you're coding in C++, you should probably be avoiding printf() and its relatives.

    0 讨论(0)
  • 2020-12-24 11:04

    What you want is %.2f, not 2%f.

    Also, you might want to replace your %d with a %f ;)

    #include <cstdio>
    int main()
    {
    printf("When this number: %f is assigned to 2 dp, it will be: %.2f ", 94.9456, 94.9456);
    return 0;
    }
    

    This will output:

    When this number: 94.945600 is assigned to 2 dp, it will be: 94.95

    See here for a full description of the printf formatting options: printf

    0 讨论(0)
提交回复
热议问题