- 締切済み
変数とデータ型のことで。
C言語の変数とデータ型の勉強をしているのですが、 %5.2fがどうしたら1.26になるのと あと %05.2fが01.26になることが全くわかりません; どなたか詳しく教えてくれませんか??
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
> 結果を5桁で表示しろという意味です. 厳密には「最小」5桁で表示しろ、ね。
- jacta
- ベストアンサー率26% (845/3158)
基本的には#1の回答の通りです。 小数点に関しては、現在のロケールに依存します。 localeconv関数が返すstruct lconv構造体のメンバのうち、decimal_pointがこれに相当します。 厳密には処理系によりますが、デフォルトのCロケールや日本語ロケールなどでは"."になり、ドイツ語ロケールなどでは","になります。 なお、ロケールに関わらず、書式文字列では"%5,2f"などではなく"%5.2f"と書きます。
- aigaion
- ベストアンサー率47% (287/608)
printf関数で表示する場合の話ですかね? %5.2f まず,1文字目の5という数字は,結果を5桁で表示しろという意味です. この場合は,4桁(小数点も1桁と含む)しかないので出力の1.26の手前に半角スペースを入れて5桁になっているはずです. .は区切りなので,特に気にする必要はないです. 2は小数点以下2桁まで表示して3桁目以降は切り捨てという意味です. %05.2f これは,前述の%5.2fとほぼ同じ意味があります. 先頭に0が付いている点で違いがありますね. この0は,足りない部分を0で埋めるという意味です. 5が,結果を5桁で表示して足りない分は半角スペースで埋めるという意味だといいましたが 0を指定すると,半角スペースの代わりに0で足りない桁を補ってくれます. 他にもいろいろな機能が,あります. くわしく学びたいのであれば参考urlを見てください. 参考書等を呼んで勉強しているのであれば,どこかに同じような記述があると思うのでそれを参考にしても良いと思います.