AW: linux-l: runden in Perl

Oliver Bandel oliver at first.in-berlin.de
Fr Nov 17 00:30:21 CET 2000


Hi!

Perl's printf ist von C entliehen.
Die Funktionalität wird die selbe sein.

Ich habe irgendwo noch in Erinnerung, daß nicht
immer ab Ziffer == 5  aufgerundet werden muß.
Hab's aber auch gerade nicht parat.

Ob auch bei dreistelligen Zoiffern schon Rundungsprobleme
auftreten (Binärdarstellung von Zahlen im Computer...)?!

So weit ich weiß ist bei der Rundung auch immer nur
die nachfolgende Ziffer zu berücksichtigen, nicht 
alle auf die nachfolgenden nachfolgenden. Aber auch
das kann evtl. unterschiedlich gehandhabt werden?!

Müßte man mal 'nen Mathematiker fragen, oder sich mal
mit ein paar Zahlen für ein Weilchen meditierend 
zurückziehen und sich selbst ein paar Gedanken machen.


Evtl. mal in de.sci.mathematik die Leute anhauen...





On Thu, 16 Nov 2000, Heinz W. Pahlke wrote:

> 
> On 16-Nov-2000 Jens Dreger wrote:
> 
> > Also: kein Bug, sondern Absicht.
> 
> Und was macht man, wenn man kaufmaennisch rechnen will? 

Integer-Arithemtik nutzen.

Wenn Du den int-Wert eines Float haben willst,
nimm 
    
    $intwert = int( $floatwert );


Wenn man komplett in integer weiter rechnen will,
nimmt man

use integer;

nutzen, um bis zum Ende des Umgebenden Blockes alle
Arithmetik als int's durchzuführen.

Und wenn man spezielles braucht: perl wäre nicht Perl,
wenn es nicht eine Fülle von modulen dafür gäbe...

> 
> Ich weiss, einfach ein paar Stellen mehr berechnen lassen und von
> Hand runden. Aber der Einbau in irgendwelche Scripte wird dadurch
> aufwendiger und schwieriger. 
> 

...wenn man der Ziffern in seinen Zahlen nicht genug kriegt,
nimmt man das Math::BigInt-Package für beliebig lange
Integer-Arithmetik und braucht dafür noch nicht mal auf CPAN
herum zu wühlen, denn das Paket gehört zur Standard Perl-Library.


> Meine Ueberlegung, mal eine Einnahmen/Ueberschuss-Rechnung zu
> schreiben, verschwindet jedenfalls immer weiter in die Ferne.

Nö.

Nimm Perl.



Tschüß,
   Oliver



Mehr Informationen über die Mailingliste linux-l