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