Работа Atof()

  • Автор темы Автор темы Barmaglot
  • Дата начала Дата начала
B

Barmaglot

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

код пишется в 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)
{
...
}
 
Эмм. а покрасивее никак выкрутиться нельзя?)
 
Нельзя в силу ограниченной точности компьютерного представления вещественных чисел.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab