Сравните двойное значение в C


Почему, даже если ввести значение 999999, оно всегда перейдет в оператор else? Может ли кто-нибудь объяснить, почему и как правильно это делать?

#include <stdio.h>

int main(int argc, char **args)
{
    double dValue = 0;

    scanf("%d",&dValue);

    if(10000 < dValue){
            printf("More than");
    } else {
        printf("Less than");
    }

    return 0;
}
1 4

1 ответ:

Если вы собираетесь читать значение как целое число (используя "%d"), то вы должны объявить его как int. Если вы собираетесь читать значение как double, то вместо этого вы должны использовать "%lf" в качестве спецификатора формата scanf.