Here is a suggestion that allows numbers between 0 and 20479 with decimals:
^(0?[0-9]{0,4}(?:\.\d+)?|1\d{4}(?:\.\d+)?|20[0-4][0-7][0-8](?:\.\d+)?|20479(?:\.[0-7])?)$
As you can see, it is a bit complex, you may not want to do it with a regex.
Explanation
(0?[0-9]{0,4}(?:\.\d+)?
between 0.0 and 9999.99 (decimals are optional)
1\d{4}(?:\.\d+)?
between 10000.0 and 19999.99 (decimals are optional)
20[0-4][0-7][0-8](?:\.\d+)?
between 20000.0 and 2048.99 (decimals are optional)
20479(?:\.[0-7])?
between 20479 and 20479.7
Update: Without decimals, you can use:
^(0?[0-9]{0,4}|1\d{4}|20[0-4][0-7][0-8]|20479$