Actually, I always use single quotes when working with numeric/decimal values. I don't know if there's an implicit cast going on when I do this, but I seem to recall having had occasional type mismatch errors with unquoted decimals.
Please show us an example because I cannot image any situation where this would be necessary (or even correct)
This was quite a while ago, so to be honest, I couldn't come up with an example off the top of my head. It was a rather complicated query that I was passing to the server using, I believe, php's pg_query_params() function, and it seemed to choke on the type conversion.
However, this may be of interest:
create table foo (nr decimal not null);
insert into foo values (1), (1.0);
explain select * from foo where nr = 1;
explain select * from foo where nr = '1';
explain select * from foo where nr = 1.0;
explain select * from foo where nr = '1.0';
Notice that in the first two SELECTs the literals are cast to NUMERIC (presumably from an INT) to do the comparison, while in the second two they are not. So quotes do not seem make a difference, at least in this case.