grep uses regexes; . means “any character” in a regex. If you want a literal string, use grep -F, fgrep, or escape the . to \..
Don’t forget to wrap your string in double quotes. Or else you should use \\.
So, your command would need to be:
grep -r "0\.49" *
or
grep -r 0\\.49 *
or
grep -Fr 0.49 *