ОБСУЖДЕНИЕ

Работа Atof()

3 ответов 4,6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Здравствуйте.
Вобщем ситуация из разряда "Стою на асфальте я в лыжи обутый...")

код пишется в VC++ 2005 express edition

std::ifstream f_in;
f_in.open("Settings.txt");
....
getline(f_in,str,char(10));
//str=="0.06";
float a=atof(str);
....
дк вместо положенных 0.06 имею а=0.059999999

далее есть цикл for вида

float dx=0.01
for(float x=0.0; x<1.0; x+=dx)
{
if (x==a)
{
сюда не попадает! а очень надо.:unsure:
}
}

Ткните носом господа пожалуйста что делать как быть...
 
if (fabs(x-a)<0.0001)
{
...
}
 
Эмм. а покрасивее никак выкрутиться нельзя?)
 
Нельзя в силу ограниченной точности компьютерного представления вещественных чисел.