【C语言】如何只打印小数的有效数字位数且不补0
【摘要】 教你一秒学会如何用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
%% 打印一个百分号
以上就是有关该问题的解决方法。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)