There's nothing wrong with your hard drive. It's the difference between how the drive manufacturers measure hard drive space and how your computer measures hard drive space. Manufacturers (and people) tend to describe capacity in decimal format (base 10), but computers work on binary format (base 2). What this means is that the closest binary approximation to a decimal place is going to be a larger number. For instance, one gigabye in decimal is 1,000,000,000 bytes. One gigabyte in binary is 1,073,741,824 bytes. There's still the same amount of space on the drive, but your computer will report a lower number than the manufacturer because it can only see things in binary.
edit: you can do the math for yourself. 320,000,000,000 divided by 1,073,741,824 equals just over 298 binary gigabytes.