Serial.print for floating numbers

/*
Measuring Current Using ACS712
*/


void setup(){ 
 Serial.begin(9600);
}

void loop(){
float current;
float maxCurr;
float minCurr;
static char disp[7];
int rawcurr = analogRead(0);
for( int i=0; i<10; i++)
 {
float current = current + (516 - rawcurr) * 45/1023.0;
current = current / 10.0;
dtostrf(current, 5,3,disp);
maxCurr = max(maxCurr, current);
minCurr = min(minCurr, current);
delay(50);
 }
float noise = maxCurr - minCurr;
 delay(10);
 //Serial.print( current);
 //Serial.print((float)(current),2);
 //Serial.print(" , ");
 Serial.print(disp);
 Serial.print(" , ");
 Serial.print(noise);
 Serial.print(" , ");
 Serial.print(current, 3);
 Serial.print(" , ");
 Serial.println(rawcurr);
}

At 0.5A load, "disp" shows around 0.100, "noise" around 0.1, "current, 3" shows zero, and "rawcurr" shows around 500.