yeah, the weird thing is that a proper answer should be an int, and if you cast to a float, you should get more precision. It's like MySQL is returning a half-float / half-int response.
As for PostgreSQL, yes it is quite a bit different from MySQL. For typical users with more windows experience, and little database experience, I'd recommend FirebirdSQL first, as it runs natively on Windows, has a smaller footprint, and requires no regular maintenance like Postgresql does (i.e. vacuuming.)
While the autovacuum daemon works well in postgresql, it is still a higher amount of initial footwork for the beginner.
However, it generally is considered the best "heavy lifting vehicle" of the Open Source realm, which is why the OSDL tests the linux kernel with it.
Both FirebirdSQL and PostgreSQL strive for SQL-92/99/2003 compliance, within reason, and for correct operation above all. This may lead to some queries that work in MySQL causing errors in either of the other databases. An example is:
select a,b,c from table group by a;
which will run on MySQL but generates an error on Postgresql or Firebirdsql, since there may be multiple b or c entries for each corresponding a entry, and the database isn't sure which one you want, so the results are theoretically capable of changing from one run to the next, which is considered a bad thing for data consistency.