--- Quote Start ---
thank you first
and there is another question: as you said "denom is a power of two of the form" ,but I can not understand for example the real is 0.56 ,then my faction form is 56/100, but 100 is just be 10 power , how to transfer this , 0.56==56/100, I can not image there is a data can do this 0.56==56/ 2's power , that is mean the real data that I caculate will be changed??
sorry for my English and sorry for my poor FFT knowledge ;)
--- Quote End ---
First: real numbers are always wrong, except in such a small number of cases that I'll ignore them for now. Standard floating point can't even represent 1/3 exactly, or 1/100, or 56*(1/100). There's always some amount of approximation going on. Once you get to (or have to) define all your own arithmetic, including numbers of bits, you get a lot of control over the kinds of approximations being made. I don't know where you got 0.56 from, but it's [a] almost certainly a rounded-off version of the mathematically exact value you had in mind, and [b] can't be represented in binary anyway.
Second: I can't imagine why you'd want to do base-ten arithmetic on an FPGA, especially in the middle of an FFT. Writing 0.56 in base ten is easy for human purposes, but there are lots of equivalent forms: 56/100, or 14/25, or 574/1025, for example.
Interesting choice, that last one. The denominator is almost exactly 2**10. In fact, if you just say 0.56 = 574/1024, you're off by less than 0.1%. The original number had limited precision, so 0.56 is implicitly good to only two decimal digits, i.e. 0.56 +/- 0.005, or about 0.56 +/- 1%. My approximation of 574/1024 lies well within the error bounds that were already in your problem statement, so the denominator is good enough for two-decimal-digit sin or cos values -1<= x <= 1, as long as you pick the numerator correctly. In fact, a denominator of 128 should give good enough precision but require fewer hardware bits in the numerator.
In answer to your concern: No, nothing really changed when going from a denominator of 100 to a denominator of 1024. The /100 fraction already contained errors, and the /1024 fraction is no worse.
Whatever your precision, you can do the same kind of analysis to determine how many bits you need for the binary equivalent of some number of decimal digits.
-- Tom