よく、浮動小数点は誤差があるので、金銭の計算には
使ってはいけないという話をききます。
こんど小数部が二桁の計算を行うので、どのくらい
誤差が出るかとおもい、ためしにVC++で下のような
処理を書いて試してみました。
しかし、どうも誤差はでないようです。
扱う値が小さい場合は、誤差はでないのでしょうか?


{
  srand(time(0));

  const int loop_num = 10000;
  int total = 0;
  double real_total = 0;
  for (int i = 0; i < loop_num; i++) {
    int n1 = rand() % 1000; // 整数部
    int n2 = rand() % 100; // 小数部
    total += n1 * 100 + n2; // 整数計算

    double d = (double)n1 + (double)n2 / 100; // 実数計算
    real_total += d;
  }
  TRACE("%f\n", (double)total/loop_num/100); // 整数での計算結果
  TRACE("%f\n", real_total/loop_num); // 実数での計算結果
}