当我在printf()
中使用%g
作为格式说明符时,有时它会四舍五入到小数点后2位,有时是3位,有时是4位...它是如何做到的?
实际上,我们应该在什么情况下使用%g
而不是%f
或%e
来处理浮点数?
当我在printf()
中使用%g
作为格式说明符时,有时它会四舍五入到小数点后2位,有时是3位,有时是4位...它是如何做到的?
实际上,我们应该在什么情况下使用%g
而不是%f
或%e
来处理浮点数?
%g
根据值自动在%e
和%f
之间切换,以尽可能显示更多信息,就像手持计算器一样。此外,使用%g
时不包括尾随零和小数点。
%g
格式说明符的舍入方式与 %f
相同,但如果 %f
的结果为 4.234000
,则 %g
将忽略尾随零并打印出 4.234
。12345.6
,而稍大的数字将被打印为 1.235e04
时,应使用 %g
。%f
转换,"精度"是小数点后的数字个数,而对于%g
,它是"有效数字"的个数。