Floating Point Math?

Fixed point is very handy for accumulating small bits to gain resolution.
An example using 16 bits, where the top 8 bits (H) are the integer component and the bottom 8 bits (L) are the fractional component.

HHHH HHHH . LLLL LLLL

It's quite easy if you define a new type using a union/struct...

typedef  union 
{ 
  struct
  {
      byte low; 
      byte hi; 
  };  unsigned  all;
} fixedPoint;

fixedPoint Accumulator;

Adding to Accumulator.all rolls from low to hi.
Access to the fraction component is by Accumulator.low
Access to the integer component is by Accumulator.hi