可能重複:
Floating point inaccuracy examples
Is JavaScript's Math broken?轉換問題
我需要從txt文件中的一些數據轉換成雙重價值,我使用此功能可實現此:atof。 的問題是,必須轉換值5.550000和ATOF函數返回 5.5499999999999998,這是一個問題,因爲我必須計算出這個數字的GPA和reault是不準確的。 這是從txt文件讀取數據功能:
void readNext(FILE* file,Lab* lab)
{
char line[100];
getline(file,line,100);
if (strcmp(line,"") == 0)
{
lab->is_null = 1;
return;
}
strcpy(lab->date,line);
getline(file,line,100);
lab->presence = atoi(line);
getline(file,line,100);
strcpy(lab->num_work,line);
getline(file,line,100);
lab->mark_work = atof(line);
getline(file,line,100);
lab->test_work = atof(line);
getline(file,line,100);
lab->current = atof(line);
getline(file,line,100);
lab->status_work = atoi(line);
getline(file,line,100);
}
[什麼每臺計算機科學家應該知道關於浮點運算(http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) – pmg 2011-05-31 20:57:57