整数化

(int)x
を負数まで含めて使おうとすると0付近で問題が起こる。
このキャストは、「整数部分の数字を取り出す」ものだから、
1.2 -> 1
0.8 -> 0
ー0.8 -> 0
ー1.2 -> ー1
というふうに、0がかぶってしまう。

なので、ヒストグラムが0付近で盛り上がる嫌な感じとなる。

そこで、それを平らにする関数を作っておく。

int flatint(double x)
{
  if(x>0)
  {
    return (int)x;
  }
  else
  {
    return ((int)x-1);
  }
}

これを使うことにすればよい。

追記)
なんか嘘だったっぽい。分からん、ちょっと調べてみる。