When you look at the raw disk size in something like fdisk or other disk partitioning tool you'll see that in most cases the size of the drive reported by the tool doesn't match the size that the manufacturer's label says. This is due to a somewhat ambiguous definition of megabyte and gigabyte.
For megabytes drive manufactures like to use 1 megabyte = 1,000,000 bytes where most computer operating systems calculate capacity with 1 megabyte = 1,048,576 bytes.
For gigabytes drive manufactures use 1 gigabyte = 1,000,000,000 bytes where Windows calculates capacity 1 gigabyte = 1,073,741,824 bytes. Linux on the other hand uses 1,000,000,000 for reporting 1 Gigabyte of disk space.
For things like USB and Floppies the formated space is reported with yet another definition where 1 megabyte = 1,024,000 bytes.
Now beyond the definitions of megabyte and gigabyte we have been talking about the raw disk capacity with the exception of the last definition. This fails to take into account the space that the filesystem itself needs. When you format a disk you will notice that you lost some of the space. This space is used by the filesystem to keep it's metadata. Metadata is the information about the filesystem and the objects, files and directories, that it holds.