переменная типа float не соответствует условиям (C)

Я пытаюсь заставить пользователя ввести число от 1,00000 до 0,00001, в то время как ребра не включены в переменную с плавающей точкой. Я могу предположить, что пользователь не набирает более 5 цифр после точки. вот что я написал:

printf("Enter required Leibniz gap.(Between 0.00001 to 1.00000)\n");
scanf("%f", &gap);
while ((gap < 0.00002) || (gap > 0.99999))
{
printf("Enter required Leibniz gap.(Between 0.00001 to 1.00000)\n");
scanf("%f", &gap);
}

теперь, когда я набираю наименьшее возможное число: 0,00002 в застревании в цикле while. когда я запускал отладчик, я увидел, что 0,00002 хранится с этим значением в переменной float: 1.99999995e-005. Кто-нибудь может мне уточнить, что я делаю неправильно? почему 0,00002 не соответствует условиям? что это за вещь "1.99999995e-005".

Ответы на вопрос(4)

Ваш ответ на вопрос