Цитата(ivan219 @ Nov 13 2009, 21:24)

for( int i=0; i < N; i++) data[i] = 1000 * sin(2*M_PI/N*i); выдает 1414.21
Это означает, что нужно еще поделить на корень из 2. Корень их двух как раз равен 1.41421356237309505, что, с учетом погрешности вычислений, дает все цифры вашего числа. А когда поделите, то получите точно 1000, как и должно быть.
Для полной уверенности поверьте на другом N.