It's all about marketing, and how the capacities are represented. The disks are advertised using the decimal version of Giga, so they are correctly stating the capacity. Let's do the calculations and see how they compare with your figures.
128GB (as advertised) = 128 x 10^9 (decimal Giga)= 128,000,000,000 bytes
128,000,000,000 / 1024^3 (binary Giga) = just over 119GiB
120GB = 120 x 10^9 = 120,000,000,000
120,000,000,000 / 1024^3 = 111.75GiB
Both these sets of figures tie in with what you have above. As regards the Samsung drive, it is possible that this is in fact a 128GB model that has been marked up, not in the decimal sense of GB, but rather in the binary sense. Incidentally, look closely at the capacity marking of this drive. Is it marked as GB or GiB ? GB is the convention used for decimal Giga, whereas GiB is the binary version. Unfortunately, there is no conistency in their use.