Here's a code that i want to discuss
#include<stdio.h>
int main()
{
    float a=0.1;
    if(a==0.1)
        printf("Stack");
    else
        printf("OverFlow");
    return 0;
}
output :
OverFlow
Can i have an explanation of this output ? 
in my perspective i think that my machine couldn't find the binary representation of 0.1 (because the binary of 0.1is an infinite number), is my intuition correct?
 
    