私はC Programming Language, 2nd Editionを読んでCを学ぼうとしています。私はいくつかのプログラミング経験を持っていますが、C.%dをprintfで使用すると、float変数はどうなりますか?
と私は現在、第1章では、私は次のコードを持っていない:
float f;
for (f = 0.0; f <= 3; f += 1.1)
printf("A: %3f B: %6.2f\n", f, f + 0.15);
をそれは出力を印刷します:
A: 0.000000 B: 0.15
A: 1.100000 B: 1.25
A: 2.200000 B: 2.35
よく見えます。次のように
は今、私はprintfのを変更:
printf("A: %3d B: %6.2f\n", f, f + 0.15);
新しい出力がここで何が起こっている
A: 0 B: 0.00
A: -1610612736 B: 0.00
A: -1610612736 B: -625777476808257557292155887552002761191109083510753486844893290688350183831589633800863219712.00
のですか?私は%dを使用しているので、floatがintに変換されることを期待しますが、それは起こったことではありません。また、なぜBの値もうまくいかなかったのでしょうか?ここに何が起こったの?
あなたはそれをintに変換するように頼んだわけではありません。ゴミ入れ、ゴミ出し。 –