First, be aware that part of the drive is used for other things, and separate partitions are used for those. In particular, there's a boot partition of about 15 MB, and a swap partition of (usually) 256 MB. This may account for the difference you're seeing.
Second, HDD manufacturers call a GB 10^9 bytes (1 billion), while OSs usually call it 2^30 bytes (1.07 billion). This will also account for a bit of difference.