記事には広告を含む場合があります。

C言語入門講座

【C言語】整数の桁数指定・小数点以下の桁数指定・0埋めの方法

2022年5月6日

おゆ

組み込み系プログラマとして5年働いていた元エンジニアです。得意言語はC言語とC++。本サイトでは学生および新人組み込み系プログラマに向けてプログラミング知識をわかりやすく解説しています。

数字を表示させる時に余分な桁があると見栄えが悪い。桁数を指定して表示したい。

こんな問題を解決します。

記事の内容

  • 小数点以下の桁数指定
  • 右揃え・左揃え時の桁数指定
  • 空白を0で埋める方法
おゆ
元組み込み系エンジニアの筆者が解説します。

数字の桁数指定

桁数指定なしの場合

普通に数値を表示すると以下のようになります。

#include <stdio.h>
void main()
{
//整数
    printf("%d\n",1);
    printf("%d\n",100);
//実数
    printf("%f\n",1.0);
    printf("%f\n",10.001);
}

実行結果

1
100
1.000000
10.001000

小数点以下の桁数指定

小数点以下の桁数指定をするにはフォーマット指定子を「%.(小数点以下の桁数)f」というように書きます。

#include <stdio.h>
void main()
{
    printf("%.3f\n",1.0);
    printf("%.3f\n",10.001);
}

実行結果

1.000
10.001

右揃え

整数

整数を右揃えにするにはフォーマット指定子を「%(桁数)d」と書きます。

#include <stdio.h>
void main()
{
    printf("%3d\n",1);
    printf("%3d\n",100);
}

実行結果

    1
100

実数

フォーマット指定子を「%(小数点も含めた全体の桁数).(小数点以下の桁数)f」とします。

#include <stdio.h>
void main()
{
    printf("%6.3f\n",1.0);
    printf("%6.3f\n",10.001);
}

実行結果

  1.000
10.001

1.0はフォーマット指定子を%6.3fとしたので小数点以下が3桁、小数点以上が2桁で「 1.000」(1の前に1つスペース)と表示されています。%6.3fの6は小数点を含めた全体の桁数を表します。

10.001は元から小数点以下が3桁、小数点以上が2桁なのでそのまま出力されます。

左揃え

整数

整数を左揃えにするにはフォーマット指定子を「%-(桁数)d」と書きます。

#include <stdio.h>
void main()
{
    printf("'%-3d'\n",1);
    printf("'%-3d'\n",100);
}

実行結果

'1   '
'100'

桁数指定なしの時と何が違うの?
おゆ
数字の右側に桁数合わせのスペースが追加されてます。わかりやすいように「'」でくくってみたよ。

実数

フォーマット指定子を「%-(小数点も含めた全体の桁数).(小数点以下の桁数)f」とします。

#include <stdio.h>
void main()
{
    printf("'%-6.3f'\n",1.0);
    printf("'%-6.3f'\n",10.001);
}

実行結果

'1.000  '
'10.001'

0埋め

整数

空白部分を0で埋める場合はフォーマット指定子を「%0(桁数)d」と記述します。

#include <stdio.h>
void main()
{
    printf("%05d\n",1);
    printf("%05d\n",100);
}

実行結果

00001
00100

実数

フォーマット指定子を「%0(小数点も含めた全体の桁数).(小数点以下の桁数)f」と記述します。

#include <stdio.h>
void main()
{
    printf("%07.3f\n",1.0);
    printf("%07.3f\n",1.001);
}

実行結果

001.000
010.001

まとめ

大量のデータを扱うときは桁数指定することでデータが見やすくなります。データ量が少なくても自分以外が使うプログラムなら実行結果を見やすくするのがいいでしょう。

おゆ
仕事でも使えますよ。

ブログランキング参加中。クリックしてもらえると励みになります。

ブログランキング・にほんブログ村へ

-C言語入門講座