C言語のdouble型の桁数を指定して表示する
- 作成日: 2022-07-07
- 更新日: 2023-12-25
- カテゴリ: C言語
C言語のdouble型の桁数を指定する
C言語ではdouble型を扱うことができます。
double型を使うと実数を表現することが可能です。
この記事ではdouble型の桁数を指定して表示する方法を解説します。
結論から言うと9桁の実数を小数点数2桁まで表示する場合は↓のようにコードを書きます。
#include <stdio.h>
int main(void) {
double d = 1234.56789;
printf("%09.2f\n", d); // 001234.57
return 0;
}
具体的に見ていきたいと思います。
関連記事
目が覚めるC言語のdo-while文の使い方【ループ処理、初心者向け】
明快!C言語のcontinue文の使い方
君はまだC言語のdefineのすべてを知らない【マクロ、プリプロセス】
プログラミングのポインタをわかりやすく解説【C言語】
コードで見るC言語とC++の7つの違い
目が覚めるC言語のdo-while文の使い方【ループ処理、初心者向け】
明快!C言語のcontinue文の使い方
君はまだC言語のdefineのすべてを知らない【マクロ、プリプロセス】
プログラミングのポインタをわかりやすく解説【C言語】
コードで見るC言語とC++の7つの違い
double型の変数の定義方法
double型の変数の定義は↓のように行います。
double 変数名 = 値;
たとえば1234.56789
という実数をdouble型で定義する場合は↓のようにコードを書きます。
double d = 1234.56789;
↑の場合d
というのが変数名です。
この変数d
には1234.56789
という値が保存されています。
printf関数でdouble型を出力する
double型の変数をprintf関数で出力する場合はフォーマットは「%f
」を使います。
double d = 1234.56789;
printf("%f\n", d); // 1234.567890
この「%f
」のフォーマットですが表示する実数の桁数を指定することが可能です。
%
とf
の間に数値を入れることで桁数を調整できます。
フォーマットは↓になります。
最小フィールド幅.精度
たとえば実数の小数点数以下を3桁で表示したい場合です。
1234.56789
という実数なら小数点数以下3桁は1234.567
までです。
printf("%.3f\n", d); // 1234.568
↑のようにフォーマットの精度を「%.3f
」にすると小数点数以下3桁で出力できます。
小数点以下3桁まで表示するのですがその時に四捨五入されます。
元の値は1234.56789
ですが3桁にすると1234.568
になっています。
小数点数を含めた全体の桁数を指定したい場合は最小フィールド幅を指定します。
たとえば全体を12桁(ドットと小数点以下を含めて)で指定する場合は↓のようにします。
printf("%12.3f\n", d);
printf("%12.4f\n", d);
printf("%12.5f\n", d);
printf("%12.6f\n", d);
printf("%12.7f\n", d);
↑の出力結果は↓です。
1234.568
1234.5679
1234.56789
1234.567890
1234.5678900
全体の桁数を12桁にしていますので足りない分の左の桁は半角スペースで埋められます。
小数点以下が足りない場合は0
で埋められます。
「%12.3f
」というフォーマットは「全体の桁数が12」で「小数点以下の桁数が3」という意味になります。
この場合小数点以下の桁数3は12桁の中に含まれているので注意が必要です。
また全体の桁数12にはドット(.
)も含まれています。
最小フィールド幅の頭に0
をつけると半角スペースではなく0埋めされます。
printf("%012.3f\n", d); // 00001234.568
snprintfでdouble型を文字列にする
snprintf関数を使うとdouble型を文字列にすることができます。
snprintf関数は↓のような関数です。
#include <stdio.h>
int sprintf(バッファ, バッファサイズ, 書式, 引数...);
一般的にはchar型の配列をバッファに指定することが多いです。
↓のように使います。
#include <stdio.h>
int main(void) {
double d = 12.345;
char buf[100];
snprintf(buf, sizeof buf, "%08.2f", d);
printf("buf[%s]\n", buf); // buf[00012.35]
return 0;
}
double型のバイトサイズ
ちなみにdouble型のバイト数は↓になります。
#include <stdio.h>
int main(void) {
printf("%ldバイト\n", sizeof(double)); // 8バイト
return 0;
}
おわりに
今回はC言語のdouble型の桁数を指定して表示する方法を解説しました。
double型の桁数を指定したい場合はけっこうよくありますよね。
🦝 < 実数で表現しよう
🐭 < 小数点数以下の世界へようこそ