ごめん。averageはこっちが正しい。
  return (double)(int)(sum / num * 1000 + 0.5) / 1000;