有几个与此相关的问题,但我还没有看到正确回答这个问题的人。我想打印一个浮点数,但我希望小数位数是自适应的。举个例子:
0 -> 0
1234 -> 1234
0.1234 -> 0.1234
0.3 -> 0.3
令人烦恼的是,%f
说明符只会打印到固定精度,因此它会为所有未达到该精度的数字添加尾随零。有些人建议%g
说明符,适用于一组数字,但对于某些数字它将切换为科学记数法,如下所示:
printf("%g", 1000000.0); // prints 1e+06
如何打印没有不必要的零的浮点数,同时仍然保持 printf 对于实际具有小数部分的数字的标准精度?
Use snprintf
打印到临时缓冲区然后删除尾随'0'
手动输入字符。没有其他方法既正确又相当容易实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)