double basicPay = 1999.0;
        double hra = 145.0;
        float experience = 3.0f;
        double percentage;
        if(experience<3)percentage = 0;
        else if(experience>=3 && experience<5)percentage = 5;
        else if(experience>=5 && experience<10)percentage = 7;
        else percentage = 12;
        double salary = (basicPay + hra + basicPay*(percentage/100));
        System.out.println(salary);
This shows output as 2243.95
But if I change
double salary = (float)(basicPay + hra + basicPay*(percentage/100));
The answer now is 2243.949951171875
Why is this happening?
 
    