浮点型数据的输入与输出同样用格式输入/输出函数scanf()
、printf()
。
浮点型数据的输出格式控制符有以下几种:
(1)f格式符,表示实数型(单精度、双精度),即以小数形式输出。
用法:%f、%mf、%.nf、%m.nf
说明:对于浮点型数据,在格式说明中,“%”和格式说明符间可以插入以下附加符号。
- m:整型数据相同,为输出的数据指定宽度。
- n:是一个正整数,表示输出的实数保留n位小数。
#include <stdio.h>
void main()
{
float x = 314.15;
printf("%f,%7.2f,%12f,%-12f,%.2f", x, x, x, x, x);
}
运行结果为:
314.149994, 314.15, 314.149994, 314.149994 ,314.15
浮点型变量所赋的值为314.15,但程序运行使用%f输出时,却为314.149994,这是由于实数在内存中的存储误差导致的。并非所有的数字都是有效数字。单精度实数的有效位数一般是7~8位,双精度实数的有效位数一般是15~16位。
(2)e(或E)格式符,使用指数格式表示实数型(单精度、双精度)数据。
用法:%e、%me、%m.ne、%.ne
说明:这里的m、n与上面的意义相同。
#include <stdio.h>
void main()
{
float x = 135.62, y = 451.628e-5;
printf("%e,%14E,%10.2e", x, -y, x);
}
运行结果为:
1.356200e+002,-4.516280E-003, 1.36e+002
(3)g格式符,用来输出实数型(单精度、双精度),根据数值的大小自动选择占用宽度最小的一种,不输出无意义的零。
用法:%g
#include <stdio.h>
void main()
{
float x=123.456;
printf("%g,%f,%e",x,x,x);
}
运行结果为:
123.456,123.456001,1.234560e+002
对于浮点型数据的输入格式控制符可以是%f、%e,输入格式应该尽可能简单。可以指定输入数据所占的列数,系统自动按指定的列数截取所需的数据。
但是浮点型数据输入时不能规定精度。例如:
scanf(“%5.2f”,&x);
这种输入格式是错误的。
酷客网(coolcou.com) – 专注IT精品教程和实例
评论前必须登录!
注册