Schrift
[thread]10712[/thread]

kleine Zahlen in Perl

Leser: 2


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
miwieg
 2007-11-02 21:36
#101709 #101709
User since
2006-07-16
59 Artikel
BenutzerIn
[default_avatar]
Hallo!

Ich möchte ein Programm schreiben, indem viele kleine Zahlen miteinander multipliziert werden.
Sind dabei in Perl irgendwelche Probleme zu erwarten in Sachen "underflow" oder "Rundungsfehler"? Wenn ja, kann mir irgend jemand Tipps geben, wie ich dieses Problem in Perl umgehen kann?

Vielen Dank im Voraus!
stormy2211
 2007-11-02 21:50
#101711 #101711
User since
2007-11-02
20 Artikel
BenutzerIn
[default_avatar]
Sind das eher Kommazahlen oder Ganze Zahlen?
Bei ganzen Zahlen die könnte man einfach miteinander multiplizieren soweit mein bisheriges kleines 1-Tages Wissen mich nicht täuscht.
gruß stormy
lichtkind
 2007-11-02 22:28
#101713 #101713
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
also bei kleinen zahlen gibt es eigentlich nie probleme. es gibt eher sondermodule bei besonders grossen zahlen wie BigInt CPAN:BigInt
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
#Kein Kommentar
 2007-11-02 22:42
#101717 #101717
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
bei perl gibt es den typischen rundungsfehler:
aus 2 mach 2.000000000001

weiß aber nich wie man den umgehen kann, wenn überhaupt...
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
lichtkind
 2007-11-03 00:14
#101719 #101719
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
in der ausgabe oder "nur" beim rechnen?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
pq
 2007-11-03 03:59
#101727 #101727
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
#Kein Kommentar+2007-11-02 21:42:54--
bei perl gibt es den typischen rundungsfehler:

nicht nur in perl.
bei Perlmonks:267145 gibt es eine schoene erklaerung dazu.
Quote
weiß aber nich wie man den umgehen kann, wenn überhaupt...

wenn moeglich, immer mit ganzen zahlen rechnen und so spaet wie
moeglich in eine kommazahl umwandeln.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
miwieg
 2007-11-03 11:48
#101734 #101734
User since
2006-07-16
59 Artikel
BenutzerIn
[default_avatar]
OK, aber wie umgehe ich denn das Multiplizieren mit besonders kleinen Zahlen?

Kennt irgend jemand im Netz ein verständliches Tutorial zu diesem Thema?
lichtkind
 2007-11-03 12:19
#101735 #101735
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Wenn du mit kleinen Zahlen rechnen willst, kannst du das Rechnen mit kleinen Zahlen nicht umgehen. Die Ungenauigkeit ist ja winzig, einzig störend sind ungewollt viele Nachkommastellen und die kann man ja mit sprintf formatieren.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
topeg
 2007-11-03 13:07
#101736 #101736
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wenn die kleinen Zahlen eine feste Anzahl Nachkommastellen haben, dann kann man auch "Math::BigInt" nutzen und alle kleinen zahlen mit "10**$Anzahl_Nachkommastellen" multiplizieren und zum Schluss dividieren. Damit bekommt man weniger Probleme mit den Fließkommawerten.
Danijel
 2007-11-03 23:01
#101807 #101807
User since
2007-08-01
3 Artikel
BenutzerIn
[default_avatar]
Wie wärs einfach mit CPAN:Math::BigFloat? Eventuell ist auch CPAN:Math::BigRat hilfreich. Auf jeden Fall nehmen sie dir die Arbeit ab, deine Zahlen in Integer umzuwandeln.
There are two kinds of management problems. There's the kind you can solve by yelling and the kind you can solve by buying some sort of software. That's why I created "some sort of software that yells". - Dogbert
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-11-02 21:36.