Simpler code to support fractional units

This commit is contained in:
Jamie Cameron
2023-12-19 18:38:33 -08:00
parent 3ac0a468b1
commit bed55e7e08

View File

@@ -865,26 +865,12 @@ if ($bytes eq '' && $defaultunits) {
$units = $defaultunits;
}
else {
my @units_solid;
for(my $i=1; $i<=4; $i++) {
my $u = $unit**$i;
if ($bytes >= $u) {
my $u = 1024**$i;
if ($bytes*4 % $u == 0) {
$units = $u;
if ($bytes % $u == 0 && $bytes/$u <= $u) {
push(@units_solid,
{ units => $units,
size => $bytes/$u });
}
}
}
if (@units_solid) {
@units_solid = sort { $a->{'size'} <=> $b->{'size'} } @units_solid;
my $fsz = $bytes/$units;
my $fraction = $fsz - int($fsz);
my $decimal_nice =
$fraction == 0 || $fraction == 0.25 || $fraction == 0.5 || $fraction == 0.75;
$units = $units_solid[0]->{'units'} if (!($fsz =~ /\./ && $decimal_nice));
}
}
if ($bytes ne "") {
$bytes = sprintf("%.2f", ($bytes*1.0)/$units);