ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者の為のC言語コミュのfloatとdouble

  • mixiチェック
  • このエントリーをはてなブックマークに追加
最近C言語を勉強しはじめましたが分からない事があったので質問したいと思います
#include <stdio.h>

main()
{
float a;

printf("数値を入力してください。\n好きな数字=");
scanf("%f",&a);

if(a<=99)
{
printf("%3.1fは99以下の数字です!\n",a);
}

else
{
if(a>=100)
{
printf("%3.1fは100以上の数字です!\n",a);
}
else

{
printf("%3.1fは99〜100の間の数字です!\n",a);
}
}
}

この場合は このプログラムは正しく動くのですが
最初の float の所を double に変えてしまうと結果が正しく表示されません
何故なのかよく分からないので、もしよろしければ説明お願いします

コメント(4)

>>ヒロユキ・T・GJ2 さん
Visual C++ 2008 Express Edition を使っています

scanf の%f を%lf に変更したら正しくプログラムが動作しました!

リンク先のページを見ると double を 使う場合は %lf で書くのがよさそうですね

どうもありがとうございました!
http://www.ei.fukui-nct.ac.jp/~t-saitoh/edu/ProgAppl/pa-faq-float.html
すみません.
誤字や文体を訂正しようと削除してしまいました.
とりあえず,リンクだけ残して置きます.

float = 32bit
double = 64bit

%f = float の省略なので32bit(4byte)の入力
%lf = long float の省略なので64bit(8byte)の入力

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者の為のC言語 更新情報

初心者の為のC言語のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング