-3

float 変数を印刷するのに苦労しています。そこにあるはずのない余分な数字が表示されます。次に例を示します。

float number;
char temp[50];

fgets ( temp, sizeof temp, fr );  //reading string from file, example: 99.10   
number=atof(temp);

printf("%lf",number);             //console output: 99.101563

これは明らかに間違った出力です。助言がありますか?

4

1 に答える 1

1

この出力に予期しないことは何もありません。99.10IEEE754 では正確に表現できません。フォーマットを変更して、必要に応じて出力を小数点以下 2 桁に制限します。

printf("%.2f", number);
于 2015-04-12T22:20:10.117 に答える