And I can't understand your intend for second question...sorry. Is that important?

Not only does it say a thing about the processor but it also says how big the memory is in terms of samples you can hold. With a Uno you have only 2K of memory for everything. Inputs to the FFT process must contain a number of samples that is a power of two, so the biggest buffer you can have on a Uno is 1024, the next size up is 2048 which is more memory than you have. Don't confuse a bin with a sample, a sample is your input waveform and a bin is the output of the FFT process.

at that moment it seems time domain is windowed by rectangular window, other bins are zeros(301~30,000)

No a FFT requires that you take the whole of a sample in the buffer containing exactly a whole number of waveforms of what you want to analyse. A window slowly attenuated the samples from zero to no attenuation at the start of the sample, and fades it out again at the end. Before you submit your sample buffer to the FFT you multiply the buffer by the window sample.

Well, the app that I use displays second decimal place.(I'm not sure it really measures or just computes, but can display anyway)

Yes I think you will find not only is it a cosmetic but the frequency it measures will be inconsistent.

Like Mark says an FFT is not the best way to detect a frequency. Many people come on here asking for what you are asking for and I have come to the conclusion it is not possible. Have a look at the Teensy board that will be much closer to getting a usable indication of what you want. Their web site has a few different algorithms that can do this sort of thing.

However what ever you use you need a good solid filter on the front end to prevent antialiasing. Probably a fourth of sixth order filter.

If you want to play about with an FFT then download the free app called Audacity and run it on your PC, it will take samples and let you examin the sample and even display an FFT of them. Then you can see what sorts of results you get, or don't get.