No.5ベストアンサー
- 回答日時:
>1.26だと4文字といっていますが・・・
>3文字じゃないのですか?
数字の数だけ数えるわけではありませんよ?
1文字目=>'1'
2文字目=>'.'
3文字目=>'2'
4文字目=>'6'
です。
# 実際には5文字目=>'\0'ですが…。
strlen("1.26")は4になりますよね?
「%5.2f」指定だと5文字という指定ですから不足分を空白で補います。
「なんで?」と問われれば、「そういう仕様だから」となりますかね。
No.4
- 回答日時:
%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#
数値については同上。
「-」があるので左詰め。空白は右に補う
No.3
- 回答日時:
>なぜ%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|
+-----+-----+-----+-----+
とか、無秩序に桁数がバラバラで出力されても見難いでしょう?
No.2
- 回答日時:
printf関数等で使用される書式指定子に関する疑問かな?
URL 先を参照して下さい。
また、検索エンジンで「 printf 書式 」等で検索すれば説明してくれている多くのHPを見つけることができると思います。
見当違いの解答なら失礼。
参考URL:http://www.k-cube.co.jp/wakaba/server/format.html
No.1
- 回答日時:
ここだと、空白は削られたりまとめられたりして、入力通りには表示されません。
他の文字を使うとかしてください。そうでないと、なにがいいたいか、何が理解できないのかが、わかりません。この説明が、printf等で書式を指定するときに使う文字列のことだ、ということは理解できてますか?
この回答への補足
>>printf等で書式を指定するときに使う文字列のことだ、ということは理解できてますか?
理解できています。
それ以前に小数の計算がわからないのだと思います。
なぜ%5.2fとあったら1.26となるのか・・・がわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- 英語 「そこに~がある」の「~」が初出の場合の英訳について 7 2022/06/03 14:04
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- 英語 ①普通名詞の所有格+②普通名詞で、①普通名詞に定冠詞の意味を付加したい場合の表現方法等について 23 2022/09/30 12:47
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- 英語 提示文の"term"の意味について 4 2022/11/14 10:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
C言語、単語ごとに改行したい
-
文字列中に含まれる文字の個数...
-
Cで「大文字、小文字の判定」は...
-
charと%c , %s の関係について
-
sscanfとscanfの違いがよくわか...
-
文字列の途中に「0」がある場...
-
C言語のステップ数をカウントす...
-
エディットボックスに入力され...
-
[Java]文字列分割
-
ある文字列で2回目3回目に出現...
-
日本語の変換の問題
-
教えていただけませんか?C言語...
-
CStringについて
-
itoaわかりません
-
C言語の問題 キーボードから1 ...
-
スペースで区切って数字を入力
-
getchar分を用いて入力された文...
-
文の意味
-
C言語 空白の行(改行のみ)が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
sscanfとscanfの違いがよくわか...
-
charと%c , %s の関係について
-
fgets関数を使用したときの文字...
-
反転した数値を表示させるやり方
-
fgetsで拾われる改行文字を削除...
-
C言語 空白の行(改行のみ)が...
-
itoaわかりません
-
Cで「大文字、小文字の判定」は...
-
文字列中に含まれる文字の個数...
-
C言語で16進数文字列から16進数...
-
strstrを利用しない文字列検索...
-
小文字のみを数える方法
-
C言語のステップ数をカウントす...
-
C言語でパスワード作成ツール
-
単語数のカウントについて
-
str[j++]の意味
-
fgetsでバッファ残留文字列を無...
-
教えていただけませんか?C言語...
-
エディットボックスに入力され...
おすすめ情報