少数のあとのf

[戻る]
bb 2008/10/08(水) 12:08:49
http://homepage3.nifty.com/ishidate/vcpp05_g3/vcpp05_g3.htm
を参考につくっているのですが、
0.3などの少数の場合、「f」を追加しているのが見受けられるのですが、
0.675のような少数の場合も、「f」を追加すればいいのでしょうか?
それとも、別の文字を追加するのでしょうか?
どなたか教えてください。

2008/10/08(水) 12:17:43
第13章 データ型の修飾
13−4.定数の修飾
http://www9.plala.or.jp/sgwr-t/c/sec13.html

をご覧下さい。

bun 2008/10/09(木) 10:23:30
変数には型があります。
  float  単精度浮動小数点型
  double 倍精度浮動小数点型

同じように、定数にも型があるのです。
  1.23f  単精度浮動小数点型
  1.23e0 倍精度浮動小数点型
f指定は 単精度浮動小数点型, e指定は 倍精度浮動小数点型となります。
また、1.23のように指定を省略した場合は倍精度浮動小数点型となります。

以下のようコードを記述し、
  double d = 1.00000000000001;
  double f = 1.00000000000001f;
デバッガで d, f の値を見ると、分かりやすいかと思います。
fの方は桁落ちして、1.0000000000000000 になります。

まあ、
  float f = 1.0;
としても、自動的にfloatにキャストされて代入されますので、通常は意識しなく
ても問題ありません。
定数においても型を厳密に意識したコードを書きたい場合に指定してください。

補足:
  double f = 1.00000000000001f;
  で、コンパイラが桁落ちワーニングとかを吐くなら、私的にも厳密に書きたい
  ところですが、警告レベルを4にしてもそうはなりません。
  見た目だけのものと言えそうです。

bb 2008/10/15(水) 14:23:24
[[解決]]
みなさん、ありがとうございました。
理解しました。

古いスレッドには追加発言できません。