Revision 1980cae2
Von Sven Schöling vor etwa 3 Jahren hinzugefügt
SL/Helper/Number.pm | ||
---|---|---|
3 | 3 |
use strict; |
4 | 4 |
use Exporter qw(import); |
5 | 5 |
use List::Util qw(max min); |
6 |
use List::UtilsBy qw(rev_nsort_by); |
|
6 | 7 |
use Config; |
7 | 8 |
|
8 | 9 |
our @EXPORT_OK = qw( |
... | ... | |
60 | 61 |
return _format_number($amount, $places, %params); |
61 | 62 |
} |
62 | 63 |
|
63 |
$amount *= $unit_from->convert_to(1, $unit_to);
|
|
64 |
$amount *= $unit_from->factor;
|
|
64 | 65 |
|
65 |
my $conv_units = $unit_from->convertible_units($all_units); |
|
66 |
# unline AM::convertible_uits, this one doesn't sort by default |
|
67 |
my @conv_units = rev_nsort_by { $_->factor // 0 } @{ $unit_from->convertible_units($all_units) }; |
|
66 | 68 |
|
67 |
if (!scalar @{ $conv_units }) {
|
|
69 |
if (!scalar @conv_units) {
|
|
68 | 70 |
return _format_number($amount, $places, %params) . " " . $unit_to->name; |
69 | 71 |
} |
70 | 72 |
|
71 | 73 |
my @values; |
72 | 74 |
my $num; |
73 | 75 |
|
74 |
for my $unit (@$conv_units) {
|
|
76 |
for my $unit (@conv_units) { |
|
75 | 77 |
my $last = $unit->name eq $unit_to->name; |
76 | 78 |
if (!$last) { |
77 | 79 |
$num = int($amount / $unit->factor); |
Auch abrufbar als: Unified diff
Number: Konvertierung in Basiseinheit für format_number_units