タグ

cに関するelbatのブックマーク (1)

  • [迷信] double の出力書式は "%lf" | 株式会社きじねこ

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

  • 1