2015-04-12 37 views
-3

我很難打印浮點變量。它給了我額外的數字,那不應該在那裏。 這裏是例子:浮點打印給出額外的數字

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 

這顯然是錯誤的輸出。有什麼建議麼?

+1

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+2

這顯然是正確的,根據規範。浮點不是一個確切的表示。 –

+0

...現在正在尋找一個笨蛋。 –

回答

1

這個輸出沒有什麼意外的。在IEEE754中不能完全代表99.10。更改格式輸出限制到小數點後兩位,如果這就是你想要什麼:

printf("%.2f", number);