Addition errors in IEEE754 floating point representation
Printing out the IEEE754 format of the two numbers, I get:
  
  $\space\space\space0[11100010]10111100010010010101011=+1.10111100010010010101011\times2^{99}$
  $+0[11100001]01000011000111100001000=+1.01000011000111100001000\times2^{98}$


Compare the exact values:

$$
1.1011110001001001010101011000111111010110011111001110000010110110100111 \times 2^{99} \\
1.0100001100011110000011111010111001101101011100100001011111001010101 \times 2^{98}
$$

Observe that both of the numbers are already rounded to represent them in IEEE 754, and it happens that both of them have rounded up.

Also note that since the values have different exponents, they've been rounded at different places.

Now add the rounded values:

  1.10111100010010010101011 ×299
+ 0.101000011000111100001000×299
 -------------------------------
 10.01011101110110000101111 x299
 11  1         1111


There's overflow, so the answer will have exponent $2^{100}$ and we have to round. Again, we're rounding up, to $1.00101110111011000011000\times2^{100}$.


  So, I suppose when you add these, you end up loosing precision, but exactly how?


You will nearly always lose precision when adding two floating point numbers. If they're both positive and have the same exponent, the output will have a larger exponent and you lose some bits from the end. If they have different exponents, the smaller one will lose bits from the end. And if they have opposite signs and the same exponent, the output has a smaller exponent and you lose precision because you need bits beyond the end which were lost earlier. Essentially the only cases where you don't lose precision are when you add a number to itself, or when the input numbers and the result can all be represented exactly in the width of the type.