Price fraction: Difference between revisions

(added Icon/Unicon example)
Line 1,017:
"nasal demons"
};</lang>
 
=={{header|Perl}}==
<lang Perl>my @table = map [ /([\d\.]+)/g ], split "\n", <<'TBL';
>= 0.00 < 0.06 := 0.10
>= 0.06 < 0.11 := 0.18
>= 0.11 < 0.16 := 0.26
>= 0.16 < 0.21 := 0.32
>= 0.21 < 0.26 := 0.38
>= 0.26 < 0.31 := 0.44
>= 0.31 < 0.36 := 0.50
>= 0.36 < 0.41 := 0.54
>= 0.41 < 0.46 := 0.58
>= 0.46 < 0.51 := 0.62
>= 0.51 < 0.56 := 0.66
>= 0.56 < 0.61 := 0.70
>= 0.61 < 0.66 := 0.74
>= 0.66 < 0.71 := 0.78
>= 0.71 < 0.76 := 0.82
>= 0.76 < 0.81 := 0.86
>= 0.81 < 0.86 := 0.90
>= 0.86 < 0.91 := 0.94
>= 0.91 < 0.96 := 0.98
>= 0.96 < 1.01 := 1.00
TBL
 
sub convert {
my $money = shift;
for (@table) {
return $_->[2] if $_->[0] <= $money and $_->[1] > $money
}
die "Can't find currency conversion for $money. Counterfeit?"
}
 
# try it out
for (1 .. 10) {
my $m = rand(1);
printf "%.3f -> %g\n", $m, convert($m);
}
</lang>
 
=={{header|Perl 6}}==
Anonymous user