①浮点数类型:float(32),double(64),long double.精度不断增大。
②声明浮点型常量:float planck=123.45e-12; double fudian;等
③代码中浮点常量的基本书写形式:-1.56e-23,正号可以省略,不能在浮点型常量中间加空格。
④编译器默认浮点数常量是double类型,数值太小可能会拖慢程序运行速度,所以在浮点数后面加上f或F,编译器会将其看作float类型,l或者L同理会看作long double类型。如9.11e-3f。
⑤浮点数的打印:%f用于打印十进制计数法的float和double类型浮点数,%e用于打印指数计数法的浮点数。%Lf,%Le用于打印long类型。打印为p计数法(即16进制计数法),用%a。
⑥浮点值的上溢和下溢:若计算导致数字过大,超出当前类型所能表达的范围时,发生上溢,printf()显示该值为inf或者infinity;当计算的过程中损失了原来末尾的有效位上的数字,叫做下溢。
练习题
1、编写一个程序读取一个浮点数,先打印成小数点形式,在打印成指数形式,然后在打印为p计数法(即16进制计数法)。
#include <stdio.h>
int main()
{
float number;
printf("Enter a floating-point value:");
scanf_s("%f", &number);
printf("\nfixed-point notation:%f",number);
printf("\nexponential notation:%e", number);
printf("\np nonation:%a", number);
getchar();
getchar();
return 0;
}
结果为
Enter a floating-point value:64.25
fixed-point notation:64.250000
exponential notation:6.425000e+01
p nonation:0x1.0100000000000p+6
2、一个水分子的质量约为3.0x10-23克。一夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。
#include <stdio.h>
int main()
{
int number;
float minute;
float one = 3.0e-23;
printf("输入水的夸脱数:");
scanf_s("%d", &number);
minute = (number *950)/ one;
printf("水分子的数量为:%e", minute);
getchar();
getchar();
return 0;
}