double型って?
まずはこのプログラムを実行してみよう。
main.cpp
/*
平均値を表示する
*/
#include <stdio.h>
/* メイン関数 */
int main( void )
{
int na, nb;
puts( "2つの整数を入力してください" );
printf( "整数A:" );
scanf( "%d", &na );
printf( "整数B:" );
scanf( "%d", &nb );
printf( "平均値は%dです\n", (na + nb) / 2 );
return(0);
}
このプログラムは2値の平均値を出すプログラムです。
実行するとわかりますが、平均値の小数点以下は切り捨てられてしまっています。
int型では整数しか扱えないのです。そこで登場するのがdouble型です。
C言語では、実数を浮動小数点数という形式で表現します。それを扱うことができる型のひとつがdouble型です。
説明するよりプログラムで確認したほうがわかりやすいと思うので、以下の用にコードを書き換えてみてください。
main.cpp
/*
平均値を表示する
*/
#include <stdio.h>
/* メイン関数 */
int main( void )
{
double na, nb;
puts( "2つの整数を入力してください" );
printf( "整数A:" );
scanf( "%lf", &na );
printf( "整数B:" );
scanf( "%lf", &nb );
printf( "平均値は%fです\n", (na + nb) / 2.0 );
return(0);
}
型をdouble型に変えてみました。これで小数点以下も表示されるはずです。
その他の変更点は変換指定です。double型の場合はscanfは%lf、printfには%fを指定します。
この指定にしないと正常に表示されないので気をつけてください。
最終更新:2012年05月20日 19:33