C浮点型数据的输入与输出

浮点型数据的输入与输出同样用格式输入/输出函数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精品教程和实例

赞(0)

评论 抢沙发

评论前必须登录!