The "df" or "fdisk -l" listings assume the blocks are 1K blocks. So there are 1024 1-k blocks per Megabyte.
Double check that your file-system uses 1K blocks. According to the Coreutils manual:
2.3 Block size
Some gnu programs (at least df, du, and ls) display sizes in “blocks”. You can adjust
the block size and method of display to make sizes easier to read. The block size used for
display is independent of any ﬁle system block size. Fractional block counts are rounded up
to the nearest integer.
I think that the blocksize is determined by the filesystem used and how it was formatted. The blocksize used by df and du are conveniences. On my system, "stat -f %B" displays 512 byte blocks regardless of what I am checking.
Check your own
documentation on what blocksize quota uses on your own
system. I don't know offhand if quota uses an arbitrary blocksize or gets it from the filesystem. And I won't assume an answer for me is the correct answer for you.
The ext2 filesystem can have 1024, 2048, and 4096 bytes per block as an option to mkefs. You can check on the blocksize of a fileystem with the debugfs program.