Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Zwei Werte vergleichen bringt immer true

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.11.2006
    Beiträge
    42

    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

  2. #2
    Registrierter Benutzer Avatar von Molaf
    Registriert seit
    15.11.2004
    Beiträge
    127
    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •