プロが教える店舗&オフィスのセキュリティ対策術

C言語初心者です。
よろしくお願いします。

printfの変換仕様の機能の確認を参考書を参考に勉強していた所、以下のようなプログラムがありました。

---------------------------------
#include<stdio.h>
int main(void)
{
float a;

a=24.54F;

printf("f=%f\n",a);
printf("e=%e\n",a);

     return 0;
}
------------------------------------

以上のプログラムの「a=24.54F」の「F」の意味が分かりません。
しかし「F」がないと、「 'double' から 'float' へ切り詰めます。」といったようなエラーが出てしまいます。
16進数を入れればいいのかなと思い、「D」や「E」を入れてもダメで、そういうことではないみたいでした。

「a=24.54F」の意味を誰か教えていただければ、嬉しいです。

A 回答 (2件)

printfの仕様ではないですね。



>a=24.54F;
これは接尾語といわれるものです。
floatの定数の場合は末尾に「F」もしくは「f」を指定します。
なにも指定しないとdouble型(もしくはint型)となります。

参考
http://www9.plala.or.jp/sgwr-t/c/sec13.html

参考URL:http://www9.plala.or.jp/sgwr-t/c/sec13.html
    • good
    • 0
この回答へのお礼

接尾語というものなのですね。
接尾語でいろいろ調べました。
float型の方がdouble型より表現範囲が狭いので、警告が出る場合があるということがわかりました。
ありがとうございました。

お礼日時:2009/01/28 11:42

24.54


何もつかない小数はdouble型
24.54f
fやFをつけるとfloat型
123
何もつかない整数はint型
123L
Lをつけるとlong型
    • good
    • 0
この回答へのお礼

接尾語というものなのですね。
接尾語でいろいろ調べました。
float型の方がdouble型より表現範囲が狭いので、警告が出る場合があるということがわかりました。
接尾語についてもうちょっと勉強してみます。
ありがとうございました。

お礼日時:2009/01/28 11:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!