[解決済み] printfにおけるdoubleの正しい書式指定子
質問
の正しい書式指定子は何ですか?
double
をprintfで使用することはできますか?それは
%f
それとも
%lf
? 私は
%f
が、よくわからない。
コードサンプル
#include <stdio.h>
int main()
{
double d = 1.4;
printf("%lf", d); // Is this wrong?
}
解決方法は?
"%f"
は、ダブルの正しい形式です(少なくとも1つ)。そこで
は
のフォーマットはありません。
float
を渡そうとすると
float
から
printf
に昇格します。
double
前に
printf
受け取る
1
.
"%lf"
は、現行規格でも許容されます。
l
が続くと効果がないように指定されています。
f
変換指定子(中略)。
なお、ここは
printf
の書式文字列と大きく異なります。
scanf
(そして
fscanf
など)の書式文字列です。出力には
値
から昇格されます。
float
から
double
を variadic パラメータとして渡した場合。入力の場合は
ポインタ
これはプロモートされないので、このような場合は
scanf
を読みたいのか、それとも
float
または
double
の場合、そのため
scanf
,
%f
を読み取ることを意味します。
float
と
%lf
を読み取ることを意味します。
double
(そして、何気に
long double
を使用すると
%Lf
のどちらかに対して
printf
または
scanf
).
<サブ 1. C99, §6.5.2.2/6: "呼び出される関数を示す式がプロトタイプを含まない型を持つ場合、各引数に対して整数の昇格が行われ、float型を持つ引数はdoubleに昇格します。C++では、表現は多少異なりますが(例えば、prototypeという単語は使用しません)、効果は同じです。すべての可変個引数は、関数が受け取る前にデフォルトのプロモーションを受けます。
関連
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み] printf ファミリーを使用して、size_t 変数をポータブルに印刷するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] printf/String.Formatに相当するJavaScriptの機能
-
[解決済み] なぜGCCはa*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのでしょうか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み] 浮動小数点以下の0を削除して文字列に変換する方法
-
[解決済み】boolのprintfフォーマット指定子とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み] [Solved] なぜこのようなエラーが発生するのでしょうか。「データ定義に型またはストレージクラスがない」?
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み】C言語のフォーマット文字列でデータ引数が使用されない [重複]。
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み】cでscanfを使用してdouble値を読み込む