在c语言程序编写中%g有什么样的含义

如题所述

用在printf中,是所谓“紧凑型浮点数输出格式”,特点是根据它所对应的变量的实际值的情况在%f和%e自动选择输出格式,且不输出小数点后无效的0。具体是:

    当输出值的小数部分位数小于等于%f的默认长度时按实际长度输出,不输出无效的0;

    当输出值的小数部分位数大于%f的默认长度时按%f格式输出;

    当输出值的绝对值太大或太小时用%e格式输出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-13
转换说明及作为结果的打印输出%a 浮点数、十六进制数字和p-记数法(C99)
%A 浮点数、十六进制数字和p-记法(C99)
%c 一个字符
%d 有符号十进制整数
%e 浮点数、e-记数法
%E 浮点数、E-记数法
%f 浮点数、十进制记数法
%g 根据数值不同自动选择%f或%e.
%G 根据数值不同自动选择%f或%e.
%i 有符号十进制数(与%d相同)
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 使用十六进制数字0f的无符号十六进制整数
%X 使用十六进制数字0f的无符号十六进制整数
%% 打印一个百分号 使用printf ()函数 printf()的基本形式: printf("格式控制字符串",变量列表);

求采纳本回答被提问者和网友采纳
第2个回答  2011-12-13
与%d 和%f不同,%g是用来自动识别变量并自动设置格式的,比如:
float myFloat= 15.6f;
float myInt = 5.0f;
float myLarge = 7000000.0f;
printf("my float is %g", myFloat);
printf("my int is %g", myInt);
printf("my large is %g", myLarge);
结果是:
my float is 15.6
my int is 5
my large is 7e+07f
第3个回答  2011-12-13
浮点数输出格式控制符,由系统自行决定是按照%f或者%e格式输出,取两者较短的一种方式,一般是%f,特别大或者特别小的用%e。所以这是输出浮点数时最不需要操心的一种方式,推荐。
相似回答