Cに関する質問です。
printfで浮動小数点数を有効な桁だけ出力したい。」

小数点以下が15桁ある数値は15桁出力したいが、
1桁しかない場合は1桁しか出力したくない、
0桁の場合は少数点以下を出力しない、
ということがprintfで可能でしょうか?

例)
値    望む結果
0 → 0
1 → 1
0.1 → 0.1
0.123 → 0.123
1/3 → 0.333333333333333


1/3に合わせて%.15fとすると、
0.1が0.100000000000000と出力されてしまいます。

環境はWindows7+cygwinでコンパイラはgcc 4.8.1です。