c语言格式输出之浮点型:
c语言浮点型包含两种类型:单精度(float)、双精度(double)
二者的区别:
1)二者所占的内存大小不同。
float占用4个字节,double占用8个字节。
// VS2019
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
float a;
double b;
printf("float所占用的字节数--->[%d]\n", sizeof(float));
printf("double所占用的字节数--->[%d]\n", sizeof(double));
system("pause");
return 0;
}
2)二者精度不同。
float 保存6位有效位数,不是小数点后6位。
double保存直到至少13位有效位。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
float a = 1.123456789;
double b = 1.123456789123456789;
printf("%f\n", a);
printf("%lf\n", b);
system("pause");
return 0;
3)浮点数的输入与输出
在c语言中浮点数的输入域输。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
float a = 1.123456789;
double b = 1.123456789123456789;
int c = scanf("%f", &a);
int d = scanf("%lf", &b);
printf("%f\n", a);
printf("%f\n", b);
system("pause");
return 0;
}
总结:很明显的看到
输入:scanf时,float与double的区别:一个是%f,一个是%lf
输出:都是%f,而且输出都是保留的是小数点后6位但实际有效位还不变,浮点数的输出只有%f.