c/c++初学者一定会遇到用scanf控制精度的问题

87 阅读1分钟

初学者一定会遇到的问题, 示例如下

#include <iostream>
#include <string.h>
#include<cstdio>
using namespace std;

int main()
{
    double a, b;
    scanf("%.1lf", &a);
    printf("%lf", a);
    
    return 0;
}

image.png

C/C++中scanf只能控制长度,不能控制精度

#include <iostream>
#include <string.h>
#include<cstdio>
using namespace std;

int main()
{
    double a, b;
    scanf("%5lf", &a);
    printf("%lf", a);
    
    return 0;
}

image.png C/C++中printf在接受浮点数时能控制精度,并且能控制长度。

#include <iostream>
#include <string.h>
#include<cstdio>
using namespace std;

int main()
{
    double a, b;
    scanf("%lf", &a);
    printf("%4.1lf", a);
    
    return 0;
}

image.png