The representation you see in the code is equivalent to:

baud_ubrr = Round(F_CPU / (16*baud) - 1)

Because division of integers truncates, you need to add 0.5 to cause a positive number to be rounded correctly. One easy way to do that is to add half of the denominator to the numerator before the division:

Thanks for the explanation, that was beyond my math skills. Actually I was trying to make serial servo work on it’s default 1mbit baud, but realized that there is no such ubrr value for 20Mhz CPU. Found this calculation while searching for the answer and was a little confused So I am currently stuck with these servos, will need to buy a 16Mhz AtMega probably.