可能重複:
strange output in comparision of float with float literal簡單的C程序處理小數
所以計劃只是讀取一串數字,並通過總數除以發現的,平均進入。然而,最後的結果在最後加上了幾個小數,我不確定它爲什麼這樣做。
對於此給定的輸入: 483,10,3051,188,200,0
輸出應該786.4 而是它是786.400024。我究竟做錯了什麼?先謝謝你。
int main(int argc, char** argv)
{
int averageOfNumbers = 0;
printf("Enter the sequence of numbers:");
int nextNumber;
float numberCounter = 0;
do
{
scanf("%d", &nextNumber);
if(nextNumber > 0)
{
numberCounter++;
averageOfNumbers += nextNumber;
}
}
while(nextNumber > 0);
float finalAverage = (float) (averageOfNumbers/numberCounter);
averageOfNumbers = averageOfNumbers/numberCounter;
printf("Average of the numbers in the sequence is %f\n", finalAverage);
}
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – Mysticial 2012-04-09 07:10:04
作業?如果是這樣,請標記爲這樣。 – 2012-04-09 07:10:26
您可以截斷結果以隱藏不精確性,如'printf(「%。2f」,finalAverage);'ref:printf manual(http://www.manpagez.com/man/3/printf/) – hellork 2012-04-09 07:20:21