-
Zwei Werte vergleichen bringt immer true
Hallo,
ich muss in einem Perl-script zwei Preise miteinander vergleichen und bekomme trotz gleicher Werte immer einen true
$kalkpreis = $kalkpreis * $pages;
my @resppreis = split(/ /,$RESPOND{Preis});
my $testpreis = $resppreis[0] * 1;
if($kalkpreis != $testpreis)
{
print "******** Preisabweichung:\n";
print "Gemeldeter Preis: $resppreis[0]\n";
print "Errechneter Preis: $kalkpreis\n";
}
Die if-Bedingung wird immer als wahr angesehen. Es kommt immer folgendes Ergebnis:
Gemeldeter Preis: 18.3
Errechneter Preis: 18.3
oder
Gemeldeter Preis: 12.2
Errechneter Preis: 13.2
Durch die vorherigen Berechnungen muesste es sich doch um numerische Werte handeln? Oder habe ich da was falsches im Kopf?
Vagabundo
-
Registrierter Benutzer
Hallo,
wenn Du einen numerischen Vergleich durchführst, werden die Variablen sowieso in den numerischen Kontext gezwungen, eine Multiplikation mit 1 ist also garnicht nötig.
Du solltest ein print "$kalkpreis \t $testpreis)\n"; direkt vor oder nach der if-Abfrage einfügen, dann würde man die tatsächlien Werte sehen (im Anweisungsteil der if-Schleife gibst Du ja andere Variablen aus als Du verglichen hast).
Hast Du ein use strict; am Anfang des Skripts stehen?
Gruß,
Molaf
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen