この迷信ないしは事実誤認はあまりにも根が深く、あまりにも多くのプログラマが間違いを犯し続けていました。遂には標準規格の方が折れて、迷信を追認することになったという”暗い歴史”があります。 printf系の関数でdouble型の実引数に対応した書式指定は”%lf”ではなく”%f”が正解です。同様に、”%le”や”%lg”ではなく、”%e”や”%g”を使うのが正解です。 この迷信の原因になっているのは、ほぼ間違いなくscanf系関数の書式との混同です。そして、悪いことには、迷信を信じて疑わない人々が、さらにその迷信を部下や後輩や学生に広めているのです。 C言語の仕様が分かるのであれば、少し考えればprintf系関数の書式指定がfloat型とdouble型で区別する必要がないことは容易に理解できるはずです。可変個実引数は、既定の実引数拡張によってfloat型の値はdouble型に暗黙的に型変換さ