web-dev-qa-db-ja.com

autoがこの変数を浮動ではなくdoubleとして推定するのはなぜですか?

以下のスニペットでは、autoは変数をdoubleに推定しますが、floatが必要です。

auto one = 3.5;

小数点付きのリテラルには常にdoubleを使用しますか? floatとdoubleをどのように決定しますか?

13
Abhinav Kinagi

C++の浮動小数点リテラルの型は、次の場合を除いて、自動的にdoubleになります。

  1. fは接尾辞が付いています。この場合、リテラルのタイプはfloatです。

  2. Lは接尾辞が付き、その場合、リテラルのタイプはlong double

したがって、変数をfloatにしたい場合は、次のようにします。

auto one = 3.5f;
0
S.S. Anne