Go Down

Topic: kph to mph (Read 1 time) previous topic - next topic


hi all, a little help needed.

kph / 1.609 = mph so i have seen on the internet but i don't know how i would do this in arduino. do i have to use a float?



As you ask, the answer is "Yes".

However, to work with long, you could easily multiply by 10000L, add 5 for perfect rounding, and then divide by 16090
to get mph from a km/h value.

int mph = (int)((kph * 10000L + 5)/ 16090);
BTW: rounding assumes you work with positive values.


thank you michael_x, i will give that a try and yes it's positive numbers.



Just work with metres instead of kilometres (ie everything 1000x larger) and format accordingly for display.

Rob Gray aka the GRAYnomad www.robgray.com


the value am reading is kph via a cars obd and i can't change that.


Jun 10, 2012, 12:25 pm Last Edit: Jun 10, 2012, 12:45 pm by Pavilion1984 Reason: 1

Code: [Select]
int temp;
temp = ((kph * 10000L + 5)/ 16090);

that worked fine but this also worked fine but only returned a value with no decimal. i don't want the decimal anyway.

Code: [Select]
int temp;
temp = str[0] / 1.609;

this is what i have done now and it looks to work fine.

Code: [Select]
    case VS:
    temp = (str[0] * 10000L) / 16090L;
    sprintf(PID_result, ("%d MPH"), temp);

thanks for the help.

Go Up