[Solved] How to find average in float type; dividing int by number (SOLVED)

Hello,

I want to write an equation to find the average speed:

float average_speed;
int pulseleft, pulseright;
average_speed = (pulseleft + pulseright) / 2;

But i want to retain the float value after division and not round it up/down.
Will dividing by 2.0 fix this? I have no idea why this would even work, but i saw it in some code online during my research.

average_speed = (pulseleft + pulseright) / 2.0;

Or should i use casting, like the following:

average_speed = (float)(pulseleft + pulseright) / 2;

Or should i combine casting and divide by 2.0?

average_speed = (float)(pulseleft + pulseright) / 2.0;

I'm confused. :confused:

Invent some values.
Experiment.
Compare results with expectations.

Rinse and repeat.

I did some experimenting and found 2 possible solutions:

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

void loop() {

float average_speed;
int pulseleft = 28, pulseright = 33;
average_speed = (float)(pulseleft + pulseright) / 2; //correct answer: 30.5
average_speed = (pulseleft + pulseright) / 2.0; //correct answer: 30.5

Serial.print("Average speed: ");
Serial.println(average_speed);
}

Problem solved.