Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7238[/thread]

Währungsumrechner: Euro und DM haben das gleich Ergebnis



<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
MartinR
 2005-08-28 12:45
#57471 #57471
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=Jojo,28.08.2005, 03:03]            $euro=$betrag*1.95583;[/quote]
Hi,

zweimal die gleiche Formel ?

cu
Ronnie
 2005-08-28 13:26
#57472 #57472
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl

use strict;
use warnings;

my ($euro ,$dm, $betrag);

while(1){
print q"
1 = DM in EURO umrechnen
2 = EURO in DM umrechnen
q = Programm beenden
Geben Sie Ihre Auswahl ein: ";

chomp (my $auswahl = <STDIN>);
die "Programm wird beendet!\n"
unless ($auswahl =~ /^\d+\.?\d*$/ && ($auswahl == 1 || $auswahl == 2));

if ($auswahl == 1) {
print "\nGeben Sie den umzurechnenden Betrag ein: ";
chomp ($betrag = <STDIN>);
$euro = $betrag / 1.95583;
print "$betrag DM sind $euro Euro.\n";
} else {
print "\nGeben Sie den umzurechnenden Betrag ein: ";
chomp ($betrag = <STDIN>);
$dm = $betrag * 1.99583;
print "$betrag Euro sind $dm DM.\n";
}
}

den Fehler hat ja der Vorposter schon aufgezeigt - hier das ganze nochmal in etwas üblicherer Syntax.
[E|B]
 2005-08-28 14:24
#57473 #57473
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ronnies Code nur etwas abgeändert:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/perl

use strict;
use warnings;
use constant FACTOR => 1.95583;

my ($euro ,$dm, $betrag);

while(1){
print q"
1 = DM in EURO umrechnen
2 = EURO in DM umrechnen
q = Programm beenden
Geben Sie Ihre Auswahl ein: ";

chomp (my $auswahl = <STDIN>);
die "Programm wird beendet!\n"
unless ($auswahl =~ /^\d+\.?\d*$/ && ($auswahl == 1 || $auswahl == 2));

print "\nGeben Sie den umzurechnenden Betrag ein: ";
chomp ($betrag = <STDIN>);
if ($auswahl == 1) {
$euro = $betrag / FACTOR;
$euro = sprintf("%.4f", $euro);
print "$betrag DM sind $euro Euro.\n";
} else {
$dm = $betrag * FACTOR;
$dm = sprintf("%.2f", $euro);
print "$betrag Euro sind $dm DM.\n";
}
}
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Jojo
 2005-08-28 05:03
#57474 #57474
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo,

Ich bin im Moment noch totaler Anfänger, was die Programmierung angeht. Nun haperts bei mir unter anderem bei einem Skript, bei dem ich Euro in DM und umgekehrt umrechnen soll. Irgendwas mache ich falsch, weil zwei mal die gleichen Werte ausgegeben werden.
Für diese Dummheit sind ich und der folgende Code verantwortlich.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
            #!/usr/bin/perl-w

             my $euro;
             my $dm;
             my $betrag =0;
             my $endlos=1;
             while($endlos){

            print"\n1 =DM in EURO umrechnen.";
            print"\n2 =EURO in DM umrechnen.";
            print "\n3 = Programm beenden.";
            print "\nGeben Sie Ihre Auswahl ein: ";
            chomp ($auswahl=<STDIN>);
            print "\n";
            print "\n";

            if($auswahl==1){
            print "\nGeben Sie den umzurechnenden Betrag ein:";
            chomp ($betrag=<STDIN>);
            $euro=$betrag*1.95583;
            print"$betrag DM sind $euro Euro.\n";
            $auswahl =0;
            }
            if($auswahl==2){
            print "\nGeben Sie den umzurechnenden Betrag ein:";
            chomp ($betrag=<STDIN>);
            $dm=$betrag*1.99583;
            print"$betrag Euro sind $dm DM.\n";
            $auswahl=0;
            }
            if($auswahl==5){
            print"Ende\n";
            $auswahl=0;
            $endlos=0;
            }
            if($auswahl!=0){
            }
            }


Was kann man daran noch verbessern, bzw. was ist falsch daran?

Vielen Dank !!!

Gr. Jojo

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1125312212-->
Jojo
 2005-08-28 13:12
#57475 #57475
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo und danke!

Ja das ist leider das Problem. Ich habe keine Idee, womit ich die anderer Formel ersetzten kann.

Gruß Jojo
Jojo
 2005-08-28 14:07
#57476 #57476
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo Ronnie,

Habe schon ausgebessert:
$euro=$betrag/1.95583;
Es erscheinen dann aber 13 Nachkommastellen, die allerdings auf 4 begrenzt werden sollen.
Nun habe ich Deinen Code ausprobiert, der super funktioniert aber leider auch mit dieser hohen Anzahl Nachkommastellen.

Hast Du da auch noch einen Tipp??

Aber erste einmal herzlichen Dank für die schnelle Antwort!

Jojo
[E|B]
 2005-08-28 14:25
#57477 #57477
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
BTW: Wieso hat das Thema einen Kalendereintrag bekommen?
Und wieso ist das Thema im CGI Forum? *verschieb*\n\n

<!--EDIT|[E|B]|1125224924-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Strat
 2005-08-28 14:45
#57478 #57478
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn du nur vier willst, dann hilft printf oder sprintf:
Code: (dl )
my $formatted = sprintf("%.4f", 200/1.95583);

wenn du gerundet haben willst, einfach 0.0005 dazuzaehlen:
Code: (dl )
my $formatted = sprintf("%.4f", 0.0005 + 200/1.95583);
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Jojo
 2005-08-28 14:47
#57479 #57479
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo Erik!

Danke, jetzt klappt es priema. Hoffe auch einmal dahin zu kommen, so einen sauberen Code zu schreiben.

Nochmals vielen Dank für die schnelle Hilfe!

Gruß Jojo
Jojo
 2005-08-28 14:50
#57480 #57480
User since
2005-08-28
20 Artikel
BenutzerIn
[default_avatar]
Hallo Strat,

Danke erst einmal an alle für die schnelle Hilfe!!!

Gruß Jojo
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2005-08-28 12:45.