float类型
float类型数据跟以下要说的double类型数据都属于浮点类型数据,与以上的数据类型不同,以上都是整型数据。float是单精度数据,可以用来表示小数,虽然表示范围较大,但小数点后的精确度不高,占用4个字节,表示范围在-3.4*10^38到3.4乘以10的38次方,它的占位符是%f,但当想要显示n位小数时可以用%.nf表示。以下程序执行结果为a=5.498600,b=-36.00。
#include <stdio.h>
int main()
{
float a = 5.4986,b = -36;
printf("a=%.6f,b=%.2f",a,b);
}
double类型
double类型的数据属于双精度浮点型数据,虽然说表示范围较小,但是对于小数的精度要求较高,占用8个字节,表示范围是-1.7*10-308~1.7*10308,它的占位符是%lf。当然,当想要显示n位小数时占位符可写成%.nlf。以下程序的执行结果为a=6.216900,b=-57.00。
#include <stdio.h>
int main()
{
double a = 6.2169,b=-57;
printf("a=%.6lf,b=%.2lf",a,b);
}
long double类型
long double类型数据是double类型的加强版,属于高精度浮点型数据,表示范围较大,而且对小数的精度要求高,占用12或16个字节,表示范围是-1.2*10^-4932~1.2乘以10的4932次方,它的占位符是%llf,当然,若是想要显示n位小数则占位符表示为%.nllf。以下程序执行结果为a=7.202020,b=-1.999650000。
#include <stdio.h>
int main()
{
long double a = 7.20202,b=-1.99965;
printf("a=%.6llf,b=%.9llf",a,b);
}
bool类型
bool类型的数据是最特殊的一种数据类型,它不是C语言开发时就有的,但也特别实用,但使用时需加一个头文件stdbool.h,它只占一个字节,没有占位符,只有两种结果,true或false,常用于判断或者循环等地方以及分函数的类型修饰。以下程序执行结果为YES!NO!
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool a=true,b=false;
if(a)
{
printf("YES!");
}
if(!b)
{
printf("NO!);
}
}