Leser: 2
![]() |
![]() |
9 Einträge, 1 Seite |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/env perl use strict; use warnings; use Math::BigFloat; Math::BigFloat->accuracy(100); # default to 100 digits after the decimal dot my $e = Math::BigFloat->bone(); my $fakulty = $e->copy(); my $tmp; for my $n (1 .. 10) { $fakulty->bmul($n); $tmp = $fakulty->copy()->bpow(-1); $e->badd($tmp); print "$e\n"; }
1 2 3 4 5
for my $n (1 .. 10) { $fakulty->bmul($n); $e->badd($fakulty->copy()->bpow(-1)); print "$e\n"; }
FoolAck+2008-06-29 16:58:41--Und wo wir grade dabei sind, kann mir einer sagen, warum ich da die $tmp Variable brauche?
FoolAck+2008-06-29 18:53:08--Was du mit "Ranges sind nicht überladbar" meinst, versteh ich nicht.
Könntest du das erläutern?
1. sehe ich hier keine Range. (Der Ausdruck $fakulty->copy()->bpow(-1) liefert ja exakt einen Wert zurück, und nicht irgendwie einen Wertebereich oder so...)
2. Was wird hier wo überladen?
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/usr/bin/perl use strict; use warnings; use bigint; for (1e9..1e9){ print $_ * $_, $/; } my $x = 1e9; print $x * $x, $/; __END__ 1e+18 1000000000000000000
1 2 3 4
use Math::BigFloat; my $bigFloatNum = Math::BigFloat->new(5); # erstellt eine bigfloat mit "startwert 5" $bigFloatNum->badd(10); # jetzt ist $bigFloatNum eine BigFloat mit dem Wert 15 print "bigFloatNum = $bigFloatNum\n";
2.718281801146384479717813051146384479717813051146384479717813051146384479717813051146384479717813053
moritz+2008-06-29 19:28:20--bigint.pm (und vermutlich auch BigFloat und andere Mathe-Pakete) überladen Operatoren, um aus "normalen" Zahlen "große" zu machen.
![]() |
![]() |
9 Einträge, 1 Seite |