学校の授業でいきなり出てきた「%le」という書式指定子の意味が、調べてもよくわかりません。
例えば『1e-06』と出力された場合これは何を表しているのですか?
また、この指定子はどんな時使うのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
1e-06 は、1×(10の-6乗)、つまり0.000001を表します。
-2.3e+03 なら、-2.3×(10の3乗)、つまり-2300 です。
書式指定子のe
は、このような書式を指定するもので、
その前についているl
は、変数の型のサイズが「long」、この場合はe
を修飾していて実数なので、long doubleであることを指定しています。
(追記)
Cの場合、引数のfloat
は自動的にdouble
に格上げされますので、書式指定子e
やf
などはそもそもdouble
が想定されます。で、それらの前のl
が特別にlong double
を意味するのはどうやらマイクロソフト独自拡張のようです。
In Visual C++, although long double is a distinct type, it has the same internal representation as double.
_
The h prefix when it's used with data of type char and the l (lowercase L) prefix when it's used with data of type double are Microsoft extensions.
Format Specification Syntax: printf
and wprintf
Functions | Microsoft Docs
投稿2021/05/29 14:18
編集2021/05/29 14:31総合スコア8402
0
書式指定子の各文字の意味は、いろいろなページに解説が載っていますが、wikipediaの資料が一番簡素でしょうか。
https://ja.wikipedia.org/wiki/Printf#%E6%9B%B8%E5%BC%8F%E5%8C%96%E6%96%87%E5%AD%97%E5%88%97
typee
は浮動小数点の指数表記、l
は実引数の型を表し、typeがe
の場合、double型をあらわします。
すなわち、%le
はdouble型の数値を指数表記で表現するという意味です。
1e-06
は、1 * 10の-6乗、すなわち 0.000001
を表します。eの後に続く数字が10の何乗かを表現します。科学計算で頻出の表記法です。
投稿2021/05/29 14:13
総合スコア4447
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。