main(){ double value = ???; // 定数 printf("%g", value); }とすると、%g で指定される書式、
value = 123 なら、出力 123
value = 123.45678 なら、出力 123.45678
となりますが、valueが整数値であれば小数点以下の表示をせず、
valueが小数値であれば、小数点以下n桁目までしか表示させないような指定はできるのでしょうか?
小数点以下3桁までを指定したいとき、
"%.3f" とすれば、小数点以下3桁よりも長い場合は理想的な表示になりますが、
それより短い場合や整数値の場合には 123.000 などと表示されてしまいます。
"%.3g" では、小数点以下ではなく記号を含む全体の字数の指定になってしまいます。
小数点以下"3"桁までを表示させたいとして、
value = 123 のとき、出力 123
value = 123.000 のとき、出力 123
value = 123.45 のとき、出力 123.45
value = 123.45678 のとき、出力 123.456 (123.457)
value = 123.00000001 のとき、出力 123 または 123.000
value = 123.00099999 のとき、出力 123 または 123.000 (123.001)
※ 整数部分の桁数は不定です。
このように表示をしたい場合、適する表記はあるのでしょうか?