У меня есть двойной output
, который печатается как -0.000000
У меня есть цикл, который говорит:
if (output == 0) {
printf("Continuing to go STRAIGHT.\n");
}
else if (output > 0) {
printf("Turning LEFT.\n");
}
else if (output < 0) {
printf("Turning RIGHT.\n");
}
Это продолжает печатать 3-е условие, говоря, что -0,000000 меньше 0. Почему это так и как я могу исправить проблему?
printf("output=%f\n",output);
непосредственно перед этими строками, что будет напечатано? - person dbush   schedule 29.10.2016output
? - person dbush   schedule 29.10.2016==
(в основном) никогда не сработает. - person UnholySheep   schedule 29.10.2016%e
? - person dbush   schedule 29.10.2016-0
является допустимым результатом (например, сsqrt(-0)
), вы должны проверить его. И, пожалуйста, используйте соответствующие функции для сравнения с плавающей запятой, если они доступны (например,isgreater()
и др., если>=C99
поддерживается) - person deamentiaemundi   schedule 29.10.2016