如何限制小数点后printf显示的位数?

Sar*_*ins 8 c decimal

我写了一个小程序,它读取两个整数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;
}
Run Code Online (Sandbox Code Playgroud)

这将打印"0.333333"的值third.我如何改变以上输出以获得以下输出?

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

Der*_*ang 10

在你想要的地方使用"%.2f".

例如,修改以下语句

printf("\n%20s%20lf", "Fraction", quotientdecimal);
Run Code Online (Sandbox Code Playgroud)

进入这一个:

printf("\n%20s%.2f", "Fraction", quotientdecimal);
Run Code Online (Sandbox Code Playgroud)

将仅显示变量quotlentdecimal的两个分数.

  • OP可能更喜欢'%-20.2lf`将结果一直粘到右边,结果是小数点总是排成一行.如果20个字符不是所需的列宽,只需更改说明符的那一部分...... (2认同)