我試圖做一個非常簡單的程序,將首先讀取一個整數N,之後它將讀取N個數據,這是浮動,並將它們放回屏幕後2位數小數點。這很簡單,對吧?但它出錯了!這裏的源代碼:錯誤讀取浮點值
#include<cstdio>
int main()
{
float d;
int n;
scanf("%d",&n);
while(n>0)
{
n--;
scanf("%f",&d);
printf("%.2f\n",d);
}
return 0;
}
當我把小值,如3.1或1.0,它的工作得很好。但是當我給出諸如-765057.71或978715.10這樣的大值時,它會輸出不同的值。從-765057.71打印-765057.69,下一個打印978715.13。爲什麼會發生這種情況,以及我如何解決這個問題?