web-dev-qa-db-ja.com

C:float値のprintf

コンマの後に2桁の整数と6桁の10進数を持つ浮動小数点値を出力したい。 printf("%f", myFloat)を使用すると、切り捨てられた値が得られます。

これが常にCで発生するのか、それともマイクロコントローラにCを使用している(正確にはCCS)ためだけなのかはわかりませんが、参照では%fがちょうどそれを取得することを示しています:切り捨てられた浮動小数点数。

私のフロートが44.556677の場合、最初の2桁の10進数のみ"44.55"を出力しています。

だから質問は...どうすれば6桁を印刷できますか?

50
Roman Rdgz

次のようにできます:

printf("%.6f", myFloat);

6は、ドットの後の桁数を表します。

追伸@ cafを修正してくれてありがとう。

104
Beginner

printf("%9.6f", myFloat)は、合計9文字の形式を指定します。ドットの前の2桁、ドット自体、およびドットの後の6桁です。

15
dasblinkenlight
printf("%.<number>f", myFloat) //where <number> - digit after comma

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

6
Igor Shubin
printf("%0k.yf" float_variable_name)

ここで、kは、印刷する文字の総数です。 k = x + 1 + y(ドットの+ 1)およびfloat_variable_nameは、出力するfloat変数です。

小数点の前にx桁、その後にy桁を印刷するとします。現在、float_variable_nameの前の桁数がxより小さい場合、その前にその数のゼロが自動的に追加されます。

2
rohit

%.6fを使用します。これにより、6桁の小数が出力されます。

1
Charlie Brown

Printfステートメントで%2.6fの代わりに%fを使用する必要があります

0
Shankar Raju