%g用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的0。即%g是根据结果自动选择科学记数法还是一般的小数记数法。
printf("%g\n", 0.00001234); //输出结果:1.234e-05
printf("%g\n", 0.0001234); //输出结果:0.0001234
printf("%.2g\n", 123.45); //输出结果:1.2e+02
printf("%.2g\n", 23.45); //输出结果:23
对于指数小于-4或者大于给定精度的数值,按照%e的控制输出,否则按照%f的控制输出。