こんな問題を解決します。
記事の内容
- 小数点以下の桁数指定
- 右揃え・左揃え時の桁数指定
- 空白を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
まとめ
大量のデータを扱うときは桁数指定することでデータが見やすくなります。データ量が少なくても自分以外が使うプログラムなら実行結果を見やすくするのがいいでしょう。