Как я могу ограничить количество цифр, отображаемых printf после десятичной точки? - PullRequest
8 голосов
/ 15 сентября 2011

Я написал небольшую программу, которая читает два целых числа, используя scanf, а затем выполняет различные арифметические вычисления. Я использую printf для отображения результатов. Как я могу заставить printf отображать только две цифры после десятичной точки? Начиная с упрощенного примера кода:

#include <stdio.h>

int main(void)
{
    double third = 1.0 / 3.0;

    // display data  
    printf("\n%20s%20s", "Description", "Data");
    printf("\n%20s%20s", "-----------", "----");
    printf("\n%20s%20lf", "One third", third);
    printf("\n");
    return 0;
}

Это печатает «0.333333» для значения third. Как бы я изменил вышеприведенное, чтобы получить следующий вывод?

         Description                Data
         -----------                ----
           One third                0.33

1 Ответ

10 голосов
/ 15 сентября 2011

используйте "% .2f" в нужном вам месте.

Например, измените следующий оператор

printf("\n%20s%20lf", "Fraction", quotientdecimal);

на этот:

printf("\n%20s%.2f", "Fraction", quotientdecimal);

будет отображать только два числа дроби переменной quotlentdecimal.

...