> For example...let's take the 18000000000000B drive discussed earlier. That's
> 18TB or 16TiB. Annoying, but ok. Now that's also 18000MB but 16763MiB. And
> it's 18000000MB or 17166137MiB. So if you have a display in MB and you want
> to know the value in TB you move the decimal 6 places. But if you move the
> decimal 6 places to get from MiB to TiB you get...the wrong answer. Does
> this actually happen? Yes. All the freaking time. (A classic mashup is 1024k
> blocks expressed with power of 10 M and G.)

🙂

A related problem is when writing code which displays such sizes in
a human readable way, for example a "speedometer" displaying the number
of bytes per second with a limited amount of space.  A common choice is
to use 3 chars for the number plus a unit, i.e. things like "254 kB/s"
or "1.5 MB/s".  Now, if you use the "1024" multiplier, you get a funny
quirk when the current speed is, say 1003 kB/s, because "1003 kB/s" uses
one char too many, yet we haven't reached "1.0 MB/s" either.


        Stefan

Reply via email to