Float Math do not work as expected

Hi guys, i have a little trouble with float math.

following the simple exemple that follow,
i normally should get 8.501 on the serial console but i got 8.250.

void setup(){ Serial.begin(9600);}
void loop()
{
  char buff[5];
  int a = 251;
  float b = 8.25;
  float c = (a / 1000) + b;
  dtostrf(c, 5, 3, buff);//float to char
  Serial.println( buff );  
  delay(1000);
}

did i miss something obvious ?
i m running the version 1.0.6 of the IDE under a windows seven
i m compiling this for an arduino mega2560.

251 / 1000 == 0

If you want to float result, one or both of the values should be a float:

251 / 1000.0 == 0.251
251.0 / 1000 == 0.251

(float) 251 / 1000 == 0.251

thanks you for the quick reply