scanf ステートメントを使用する場合、double の入力形式文字は "%lf" であり、"%f" は使用できませんが、printf ステートメントを使用する場合は、"%f" を使用できます。%lf はprintf には定義されていませんが、システムはそれを受け入れます。したがって、double 型を使用する場合は、エラーを避けるために「%lf」入力を使用することをお勧めします。
このチュートリアルの動作環境: Windows 7 システム、C 17 バージョン、Dell G3 コンピューター。
(1) printf の %f 指定子は float 型と double 型の両方を出力できます。
「デフォルトパラメータ昇格」ルール(printfなどの関数の変数パラメータリストでは、スコープ内にプロトタイプの有無に関わらず適用される)により、float型はdouble型に昇格されます。したがって、printf() は double のみを認識します。
(2) scanf は float 型の場合は %f を使用し、double 型の場合は %lf を使用する必要があります。scanf の場合、状況は完全に異なります。ポインタを受け入れ、ここでは同様の型のプロモーションはありません。
float への格納 (ポインター経由) は double への格納とはまったく異なるため、scanf は %f と %lf を区別します。
(3) 実際には、%lf は printf では定義されていませんが、多くのシステムはそれを受け入れる可能性があります。移植性を確保するには、%f を使用してください。
double 型を使用する場合は、エラーを避けるために %lf 入力と %f 出力を使用することをお勧めします。
推奨チュートリアル: "C#"
以上がdouble の入力形式文字は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。