Тheseは私の計算され奇妙な行動float値を印刷
float c = 5.0 * (12.0 - 32.0)/9.0;
printf("%f.2", c);
結果がある-11.111111.2が、私は-11.11であることを期待していました。なにが問題ですか ?
Тheseは私の計算され奇妙な行動float値を印刷
float c = 5.0 * (12.0 - 32.0)/9.0;
printf("%f.2", c);
結果がある-11.111111.2が、私は-11.11であることを期待していました。なにが問題ですか ?
フォーマット指定子は"%.2f"
である必要があります。
あなたの現在の状況では、.2
の位置が間違っています。このため、予想よりも多くの数字が表示され、なぜ出力の末尾に.2
がそのまま表示されるのですか。
printf("%f.2", c);
は
printf("%.2f", c);
更新コードに変更する必要があり、次のとおりです。
$ cat f.c
#include <stdio.h>
int main()
{
float c = 5.0 * (12.0 - 32.0)/9.0;
printf("%.2f \n", c);
return 0;
}
$ gcc f.c
$ ./a.out
-11.11
$
あなたはフロートのフォーマットの仕様を変更する必要があります。それは間違って 代わりの
printf("%f.2", c);
を使用しているとしてこれを使用してみてください:
float c = 5.0 * (12.0 - 32.0)/9.0;
printf("%1.2f", c);
これは動作するはずです! :)
:%.2fは結果を切り捨てています。9.9999は9.99として表示されます。 –