1
2
3
4
$ perl -wE 'say 2.32119-2.32322'
-0.00202999999999998
$ perl -wE 'printf "%.5f\n", 2.32119-2.32322'
-0.00203
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#!/usr/bin/perl use warnings; use strict; my $a = 232119 / 100000; my $b = 232322 / 100000; print "$a\n"; print "$b\n"; print $a - $b . "\n"; my $c = 232119; my $d = 232322; print "$c\n"; print "$d\n"; my $e = $c - $d; print "$e\n"; $e = $e / 100000; print "$e\n";
2013-09-23T15:45:23 hlubenowDie Threads dazu sind so lang und kompliziert. Könnte bitte jemand, der das alles gelesen und verstanden hat, das Ergebnis zusammenfassen?
2013-09-25T10:02:54 GwenDragonEdisonR hat nach Runden gefragt?
Guest EdisonR1Gibt es eine Möglichkeit eine Möglichkeit Perl die -0.00203 ausrechnen zu lassen?
2013-09-23T20:52:58 topegBei Fließkommazahlen werden Werte in Matrisse und Exponent gespeichert.
[...]
Quote[...]
Die Basis ist heutzutage 2.
[...]
Quote[...]
bei 64Bit Prozessoren entspricht das Float meist einem Double.
[...]
Guest EdisonR1Was hast du genau versucht?Habe schon Math::BigFloat und Math::BigInt versucht aber irgendwie komme ich da nicht mehr weiter...
QuoteWas hast du genau versucht?
1
2
3
4
5
6
7
8
9
10
$ perl -Mv5.10
my $zahl = 1.234;
say "Aha: ", $zahl;
say "Ups: ", '$zahl';
Aha: 1.234
Ups: $zahl
1
2
3
4
5
6
7
8
9
10
11
12
$ perl -Mv5.10 -MMath::BigFloat -w
my $z1 = 2.32119;
my $z2 = 2.32322;
my $y = Math::BigFloat->new( $z1 );
my $d = $y - $z2;
say $d;
-0.00203
2013-09-23T17:12:52 LinuxerWarum gibst Du einen String '$zahl_2' an? Ich denke, Du willst eine Zahl oder eine Variable übergeben? Dann tu das auch, und verwende keinen String.
Überlege Dir doch mal, wofür die einfachen Hochkommata da sind und was die bewirken.
Siehe dazu auch perlop Quote-and-Quote-like-Operators
Wenn Du reine Variablen übergeben willst, dann tu das auch und lass den Schnick-Schnack weg.
1
2
3
4
5
6
7
8
9
10
11
12
$ perl -Mv5.10 -MMath::BigFloat -w
my $z1 = 2.32119;
my $z2 = 2.32322;
my $y = Math::BigFloat->new( $z1 );
my $d = $y - $z2;
say $d;
-0.00203