Thomas N: $betragRund = sprintf("%.2f", $betrag); bei CGI?

Beitrag lesen

Hi,

Nun bei $betragRund kommt zwar eine Zahl mit zwei
Kommastellen - wie gewollt - aber diese sind immer
Null.
$betragRund = sprintf("%.2f", $betrag);

nicht das Runden geht bei Dir schief, sondern m. E.
schon die Berechnung von $betrag:

$ergebnis = $betragRund / $eurokurs;

Laß Dir mal ausgeben, was an dieser Stelle in $ergebnis
steht.

Als KonsolenScript funktioniert die Kürzung.
Das glaube ich nicht.

Also hier das KonsolenScript, bei mir funktionierts - mal abgesehen, dass ich $betrag = ? habe, wenn ich über <stdin> nichts eingebe, was meinst Du?:
Viele Grüße
Thomas N

__________________________________________________________________
#!/usr/bin/perl -w
use strict;
my($betrag, $wahl, $eurokurs, $ergebnis, $betragR, $ergebnisRund);
$eurokurs = 1.95583;

print "Geben Sie den umzurechnenden Betrag ein:\n";
$betrag = <stdin>;
chomp($betrag);
$betrag =~ s/,/./;
$betragR = sprintf("%.2f", $betrag);

print "DM <=> Euro (1)?\n";
print "Euro <=> DM (2)?\n";

print "Ihre Wahl? :\n";
$wahl = <stdin>;
chomp($wahl);

if   ($wahl == 1)
  {
  $ergebnis = $betragR / $eurokurs;
  $ergebnisRund = sprintf("%.2f", $ergebnis);

print $betragR;
  print " DM sind ";
  print $ergebnisRund;
  print " Euro\n";
  }

elsif   ($wahl == 2)
  {
  $ergebnis = $betragR * $eurokurs;
  $ergebnisRund = sprintf("%.2f", $ergebnis);
  print $betragR, " Euro sind ", $ergebnisRund, " DM.\n";
  }

else
  {
  print "Die Wahlmoeglichkeit '", $wahl, "' existiert nicht!\n";
  }