1. ホーム
  2. c++

長いダブルリテラルのC++サフィックスは何ですか?

2023-08-12 12:56:32

質問

C++(およびC)では、サフィックスなしの浮動小数点リテラルは、デフォルトで double となりますが、サフィックス付きの f を意味する float . を得るための接尾辞は何ですか? long double ?

知らずに、定義すると、言う。

const long double x = 3.14159265358979323846264338328;

しかし、私が心配しているのは、変数 x の有効ビットが少ないことです。 3.14159265358979323846264338328 は 64 よりも少ないので、これは double リテラルだからです。この心配は正当化されるのでしょうか?

どのように解決するのですか?

C++標準から

浮動小数点数のリテラルの型は、サフィックスで明示的に指定されない限り、doubleです。 です。接尾辞fとFはfloatを、接尾辞lとLはlong doubleを指定します。 はlong doubleを指定します。

C言語規格の対応するパラグラフと比較すると興味深い。C言語では、以下の用語が使用されています。 floating constant の代わりに floating literal の代わりにC++で

4 接尾辞のない浮動定数は double 型を持ちます。文字fまたはFで接尾辞が付けられた場合、float型になります。文字lまたはLでサフィックスされた場合、型はlong doubleです。