I have a simple C snippet as follows:
#include<stdio.h>
#include<conio.h>
int main()    
{
    float a=0.3,b=0.5
    clrscr();
    if(a==0.3)
    {
        printf("equal");
    }
    else
    {
        printf("unequal");
    }
    if(b==0.5)
    {
        printf("equal");
    }
    else
    {
        printf("unequal");
    }
    getch();
}
shows output as: unequal equal.
I understand this because computer takes 0.3 as 1/3 and as 0.333... is not equal to 0.33, it shows output unequal, while in 0.5 is precise number so it gives output as equal. 
But now if I take float b=0.2 like this:
float b=0.2;
if(b==0.2)
{
    printf("equal");
}
else
{
    printf("unequal");
}
Then it also shows unequal as output! As 0.2 is  1/5 - precise value, it should give output equal.
Can anyone tell me if anything is wrong here?
 
    