I'd believe that: gdouble fraction = running_total * sqrt(num_sats_used) / num_sats_used / 100.0; What if num_sats_used is zero?