printfの%fと%lfについて
Posted: 2016年11月03日(木) 21:43
こんばんは。
先ほど、C言語についていろいろと調べていたら、printf関数内でdouble型の変数を表示させたいときに、%lfではなく%fを使うと知りました。
「printfではfloat型を受け取ったとしてもdouble型に格上げされて計算されるので、printfに渡った時点でfloatの値はあり得ない。」
これについてはなんとなくわかります。
ですが、%fはfloat型への、%lfはdouble型への書式指定子ですよね?
もしfloat型がdouble型に格上げされるのであれば、%lfで取るのではないでしょうか。
なぜ、%fで取るのか、反対な気がしてなりません。
どなたかご解答よろしくお願いします。
先ほど、C言語についていろいろと調べていたら、printf関数内でdouble型の変数を表示させたいときに、%lfではなく%fを使うと知りました。
「printfではfloat型を受け取ったとしてもdouble型に格上げされて計算されるので、printfに渡った時点でfloatの値はあり得ない。」
これについてはなんとなくわかります。
ですが、%fはfloat型への、%lfはdouble型への書式指定子ですよね?
もしfloat型がdouble型に格上げされるのであれば、%lfで取るのではないでしょうか。
なぜ、%fで取るのか、反対な気がしてなりません。
どなたかご解答よろしくお願いします。