Возможные дубликаты:
Примеры неточности с плавающей запятой
Не работает ли математика JavaScript?
Мне нужно преобразовать некоторые данные из txt файла в двойное значение, и я использую для этого эту функцию: atof. Проблема в том, что значение, которое необходимо преобразовать, равно 5.550000, а функция atof возвращает 5.5499999999999998, и это проблема, потому что я должен вычислить средний балл с этим числом, а результат не является точным. Это функция, которая читает данные из 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);
}