Losing float precision

With an Arduino DUE, this code:

float k = 1256.29; //Steps required to walk a distance unit
float dist = 100;
uint32_t steps = dist*k;
float cPos = 0; //Target position
double realPos = 0; //Real position

void setup() {
Serial.begin(250000);

cPos = steps * (1/k);

for(unsigned long i = 0; i < steps; i++)
{
  realPos += (1/k);

  }
  Serial.println(cPos);
  Serial.println(realPos);
}
void loop() {
  
}

Outputs:

100.00
100.00