fastHumanizeIecBytes function
Ultra-fast formatter for simple IEC bytes use-cases. Units: B, KiB, MiB, GiB, TiB, PiB.
Implementation
String fastHumanizeIecBytes(double bytes, {int precision = 2}) {
const tib = 1099511627776.0; // 1024^4
const gib = 1073741824.0; // 1024^3
const mib = 1048576.0; // 1024^2
const kib = 1024.0; // 1024^1
String sym;
double base;
if (bytes >= tib) {
base = tib;
sym = 'TiB';
} else if (bytes >= gib) {
base = gib;
sym = 'GiB';
} else if (bytes >= mib) {
base = mib;
sym = 'MiB';
} else if (bytes >= kib) {
base = kib;
sym = 'KiB';
} else {
base = 1.0;
sym = 'B';
}
final v = bytes / base;
final s = _toFixedTrim(v, precision);
return '$s $sym';
}