(int)(variable*float ) problem?

Hi,
I am really confused:

    float deneme = 100f;  // or int deneme=100
    int a = (int)(deneme * 0.01f);
    int b = (int)(100 * 0.01f);

Why both gives different results?
a=0;
b=1;

Floating Point error.

On my machine with your snippet I get

float deneme = 100.00001f; //a = 1;
float deneme = 100.000001f; // a = 0;

An int will Never round up. Only down.