linux-l: runden in Perl
Steffen Dettmer
steffen at dett.de
Mi Nov 15 12:13:00 CET 2000
* Ulrich Wiederhold wrote on Tue, Nov 14, 2000 at 22:54 +0100:
> Hallo,
> ich möchte nach einer Division das Ergebnis runden.
Für ne Ausgabe? Intern runden macht ja meist keinen Sinn. Für
Ausgaben nimmt man am besten printf mit "%.2f" als format.
> Klar, könnte ich die Zahl splitten und jede Stelle verleichen! Aber das
> ist mir zu aufwendig. Geht bstimmt auch einfacher!
Ja, mal 100 rechnen, mit s/(\..*)$// den Rest abschneiden, und
wieder durch hundert teilen.
Diese Idee (runden über Regulären Ausdruck) hat mich so fasziniert,
daß ich das mal bauen *mußte*. Fetzt:
perl -e '
$a=2/3;
$a =~ s/^(\d*\.\d\d)(\d)(.*)$/($1+(($2>4)?0.01:0))/e;
print $a,"\n";
'
CooL :) Kann man jemand den Rechenaufwand schätzen (mit RegEx),
wie der im Vergleich zum runden ist?
Jedenfalls ziemlich cool :)
oki,
Steffen
--
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.
Mehr Informationen über die Mailingliste linux-l