I know it isn't the RAM module because the amount of memory is reported correctly by Windows and the BIOS.
As far as the rounding error is concerned: I don't see why it should be rounded like that. As far as I'm aware, RAM is normally specified in MiB, i.e. 1MiB = 1024KiB = 1,048,576 bytes, so to be pedantic I really have 536.9MB but 8.38MB is being used for video so it should report 528.5MB (more) not 490.6MB (less).
EDIT:
Even GRUB seems to be reporting the amount of memory correctly, 639KiB of conventional + 515,008KiB of extended memory which works out at 503.56MiB and is probably a rounding error.