アプリ版:「スタンプのみでお礼する」機能のリリースについて

%5.2f
とあったら、表示する桁数は全部で(小数点も含め)5桁、小数点以下は2桁です。1.26は

1.26

と表示されます。全部で5桁なのでまだ1桁余っていますね。余った分は1桁分空白で表示されています。
%の次に-がない場合は右詰めになるのです。
%-5.2f
とすると
1.26
と表示されます。
これらの文の意味がわからないのですが、意味がわかる方教えて下さい。

A 回答 (6件)

>1.26だと4文字といっていますが・・・


>3文字じゃないのですか?

数字の数だけ数えるわけではありませんよ?
1文字目=>'1'
2文字目=>'.'
3文字目=>'2'
4文字目=>'6'
です。
# 実際には5文字目=>'\0'ですが…。

strlen("1.26")は4になりますよね?

「%5.2f」指定だと5文字という指定ですから不足分を空白で補います。
「なんで?」と問われれば、「そういう仕様だから」となりますかね。
    • good
    • 0
この回答へのお礼

よく解りました、回答ありがとうございます。

お礼日時:2011/09/13 19:05

ちゃんと質問の中にも書いてあるじゃないですか



> 表示する桁数は全部で(小数点も含め)5桁
    • good
    • 0
この回答へのお礼

いやいやお恥ずかしい(笑)
回答ありがとうございます。

お礼日時:2011/09/13 19:04

%5.2f の「5.2」というのは、「小数」というわけではありません。


仕様を決めるときに %5/2f とか %5#2f とかしてもよかったものです。小数点はただの区切り文字です。
おそらく、「小数の桁」を連想させるので「小数点」に決めたのだと思います。

また、「-」についても、「通常の逆」程度の意味です。これも %<5.2fとかでもよかったかもしれません。
おそらく、数値っぽいもので統一したかったのでしょう。


1.26だと.2の動作がわかりずらいと思うので、もう一桁つかった 1.263 で例示します。
あと、空白が消されてしまうので、#で代用します
printf("%5.2f",1.263)

#1.26
全部で5文字。
小数点以下は2桁なので26まで表示されて3は表示されない。
1.26だと4文字なので、5-4=1文字の空白が補われる。
「-」が無いので右詰め。空白は左に補う

printf("%-5.2f",1.263)

1.26#
数値については同上。
「-」があるので左詰め。空白は右に補う

この回答への補足

>>1.26だと4文字なので
1.26だと4文字といっていますが・・・
3文字じゃないのですか?
ちょっとわかりません。

補足日時:2011/09/13 12:29
    • good
    • 0

>なぜ%5.2fとあったら1.26となるのか・・・がわかりません。



「全部で5桁。小数点以下は第2位まで出力したい」からそのように指定しているのでしょう。

+-----+-----+-----+-----+
|1.23_|23.45|5.60_|7.89_|
+-----+-----+-----+-----+
|52.40|0.01_|0.00_|17.89|
+-----+-----+-----+-----+
とか、桁を揃えて出力したい。という要望に対応するため。
でしょう。
# スペースは_で置き換え。
# ですが…プロポーショナルピッチだとヘンに見えるかも。
# テキストエディタなどにコピペして下さい。
+-----+-----+-----+-----+
|_1.23|23.45|_5.60|_7.89|
+-----+-----+-----+-----+
|52.40|_0.01|_0.00|17.89|
+-----+-----+-----+-----+
というように、セル内(?)で右寄せにしたい…というのとか。

+-----+-----+-----+-----+
|1.23476|23.45211|5.6|7.89923|
+-----+-----+-----+-----+
|52.4|0.0133333333|0|17.892232|
+-----+-----+-----+-----+
とか、無秩序に桁数がバラバラで出力されても見難いでしょう?
    • good
    • 0

printf関数等で使用される書式指定子に関する疑問かな?



URL 先を参照して下さい。

また、検索エンジンで「 printf 書式 」等で検索すれば説明してくれている多くのHPを見つけることができると思います。
見当違いの解答なら失礼。

参考URL:http://www.k-cube.co.jp/wakaba/server/format.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2011/09/13 19:07

ここだと、空白は削られたりまとめられたりして、入力通りには表示されません。

他の文字を使うとかしてください。そうでないと、なにがいいたいか、何が理解できないのかが、わかりません。

この説明が、printf等で書式を指定するときに使う文字列のことだ、ということは理解できてますか?

この回答への補足

>>printf等で書式を指定するときに使う文字列のことだ、ということは理解できてますか?
理解できています。
それ以前に小数の計算がわからないのだと思います。
なぜ%5.2fとあったら1.26となるのか・・・がわかりません。

補足日時:2011/09/12 23:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!