【C语言】如何只打印小数的有效数字位数且不补0
我们在编程过程中时常会碰到使用printf打印小数但只想显示该小数有有效数字的小数位数,这时使用%f或者%lf打印时往往会出现以下情况:
但是如果我们不想打印39.5之后的0,那么就需要将c语言中printf语句中的%f(表示十进制浮点数)换成%g(用来输出实数,它可以根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的0。)即可。
效果如图:
同理,类似的格式控制符还有:
1. %c:单个字符
2. %d:十进制整数(int)
3. %ld:十进制整数(long)
4. %lf:十进制浮点数(double)
5. %o:八进制数
6. %s:字符串(char)
7. %u:无符号十进制数(DWORD)
8. %x:十六进制数(0x00000)
转换说明 输出
%a 浮点数,十六进制数和p计数法(C99/C11)
%A 浮点数,十六进制数和p计数法(C99/C11)
%c 单个字符
%d 有符号十进制整数
%e 浮点数,e计数法
%E 浮点数,e计数法
%f 浮点数,十进制计数法
%g 根据值的不同,自动选择%f或%e。%e格式用于指数小于-4或者大于或等于精度时
%G 根据值的不同,自动选择%f或%E。%E格式用于指数小于-4或者大于或等于精度时
%i 有符号十进制整数(与%d相同)
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 无符号十六进制整数,使用十六进制数0f
%X 无符号十六进制整数,使用十六进制数0F
%% 打印一个百分号
以上就是有关该问题的解决方法。
- 点赞
- 收藏
- 关注作者
评论(0)