有几个与此相关的问题,但我还没有看到一个正确回答这个问题的问题。我想打印一个浮点数,但我希望小数位数是自适应的。举个例子:
0 -> 0
1234 -> 1234
0.1234 -> 0.1234
0.3 -> 0.3
令人讨厌的是,说明%f
符只会打印到固定的精度,因此它将在所有未达到该精度的数字上添加尾随零。有些人建议使用%g
说明符,它适用于一组数字,但它会切换到一些数字的科学记数法,如下所示:
printf("%g", 1000000.0); // prints 1e+06
如何在没有不必要的零的情况下打印浮点数,同时仍然保持 printf 对实际具有小数分量的数字的标准精度?