greg: multiplizieren nicht möglich

hallo,

ich hab folgenden code:
$a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
echo $a;       // = 0.27
echo $a*100;   // = 0
echo $a+1;     // = 0

wenn ich $a mit 100 multipliziere sollte eigentlich 27 rauskommen - aber egal was ich mach, es kommt immer 0 raus.
ich hab echt schon alles versucht und auch versucht etwas im internet über dieses Problem zu finden (leider ohne Erfolg).

hat jem. von euch eine idee?

danke,

greg

  1. echo $begrüßung;

    wenn ich $a mit 100 multipliziere sollte eigentlich 27 rauskommen - aber egal was ich mach, es kommt immer 0 raus.

    Das Problem kann ich nicht nachvollziehen.

    hat jem. von euch eine idee?

    Verwende zur Kontrollausgabe var_dump() statt echo.

    echo "$verabschiedung $name";

    1. hy,

      Verwende zur Kontrollausgabe var_dump() statt echo.

      bekomme mit "var_dump" folgende meldung:

      $a = $xml->themeList[0]->theme[0]->swatches[0]->swatch[0]->c1;
      var_dump ($a);        // object(SimpleXMLElement)#7 (1) { [0]=>  string(4) "0.27" }
      var_dump ($a*1.0);    // float(0)

      (alles andere hat nichts geholfen...) :?

      greg

      1. echo $begrüßung;

        Verwende zur Kontrollausgabe var_dump() statt echo.
        bekomme mit "var_dump" folgende meldung:

        $a = $xml->themeList[0]->theme[0]->swatches[0]->swatch[0]->c1;
        var_dump ($a);        // object(SimpleXMLElement)#7 (1) { [0]=>  string(4) "0.27" }

        Na bitte. Du hast in $a ein Objekt und keinen skalaren Wert, mit dem sich rechnen ließe.

        echo "$verabschiedung $name";

        1. Na bitte. Du hast in $a ein Objekt und keinen skalaren Wert, mit dem sich rechnen ließe.

          hmm... weißt du auch wie man das in einen "skalaren wert" umwandelt?
          ich habs jetzt etwas kompliziert (unschön) gelöst, in dem ich $a in ein json umgewandelt habe und dann wieder in ein objekt. (so funktioniert es zumindest).

          $a = json_encode($a);
          $a = json_decode($a, true);
          echo $a[0]*100 // = 27 (0.27*100)

          greg

          1. echo $begrüßung;

            Na bitte. Du hast in $a ein Objekt und keinen skalaren Wert, mit dem sich rechnen ließe.
            hmm... weißt du auch wie man das in einen "skalaren wert" umwandelt?

            Das sollte in der Beschreibung zu SimpleXML beschrieben sein. SimpleXML arbeitet viel mit Magie und vermutlich auch den mit [SPL-Funktionen](Standard PHP Library (SPL) Functions), so dass dessen Verhalten sich nicht aus dem normalen Objekt-Verhalten von PHP ableiten lässt. Deine var_dump()-Ausgabe ist eigentlich ein Objekt. Die einzige Eigenschaft darin hat aber einen Namen, der nicht den Bedingungen für Bezeichner entspricht, sondern eher einen Array-Key darstellt. Vielleicht ist $a[0] der passende Zugriff, vielleicht auch wahsagas Typecast. Ich weiß es jedenfalls nicht.

            echo "$verabschiedung $name";

  2. Hi greg!

    $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;

    Das ist ein String, richtig?
    Versuch mal 100 mit "0.27" zu multiplizieren.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hallo Hopsel.

      $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
      Das ist ein String, richtig?
      Versuch mal 100 mit "0.27" zu multiplizieren.

      Ergibt, wie bei PHP zu erwarten ist, 27.

      Einen schönen Donnerstag noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
      1. Hi Mathias!

        Versuch mal 100 mit "0.27" zu multiplizieren.
        Ergibt, wie bei PHP zu erwarten ist, 27.

        Ohjemine. Und ich war fest davon überzeugt, dass das nicht so einfach wär.
        Danke, für die Richtigstellung.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    2. Hallo,

      $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
      Das ist ein String, richtig?
      Versuch mal 100 mit "0.27" zu multiplizieren.

      Kleiner Tipp: In PHP gibt es keine Variablentypen: also kein Unterschied zwischen true, 100 und 'Hallo'. :-)

      MfG

      --
      SELF forever
      Mein Selfcode: ie:% br: fl:{ va:{ ls:& fo:| rl:( n4:( de:> ss:{ ch:? js:{ mo:| sh:( zu:{
      Mein Tipp: Opera verwenden, nicht den Bugbrowser(IE) oder FF!!
      1. Hallo glan.

        $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
        Das ist ein String, richtig?
        Versuch mal 100 mit "0.27" zu multiplizieren.

        Kleiner Tipp: In PHP gibt es keine Variablentypen: also kein Unterschied zwischen true, 100 und 'Hallo'. :-)

        Natürlich gibt es Datentypen. Ansonsten ergäbe ein var_dump(true) das gleiche wie ein var_dump(100) und var_dump('Hallo').

        PHP ist lediglich schwach typisiert, wandelt also gerne mal je nach Situation und Anforderung den Datentypen implizit um.

        Einen schönen Donnerstag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. danke für euer feedback - das mit den verschiedenen datentypen in php hab ich mir schon alles 10mal durchgelesen (jedoch keine schöne lösung finden können)... ; )

          greg

  3. hallo,

    ich hab folgenden code:
    $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
    echo $a;       // = 0.27
    echo $a*100;   // = 0
    echo $a+1;     // = 0

    wenn ich $a mit 100 multipliziere sollte eigentlich 27 rauskommen - aber egal was ich mach, es kommt immer 0 raus.
    ich hab echt schon alles versucht und auch versucht etwas im internet über dieses Problem zu finden (leider ohne Erfolg).

    hat jem. von euch eine idee?

    Evtl. (nicht geprüft) eine Floatungenauigkeit. Dann die bc-Funktionen verwenden.

    1. Evtl. (nicht geprüft) eine Floatungenauigkeit. Dann die bc-Funktionen verwenden.

      Das habe ich übersehen

      echo $a+1;     // = 0

      Dann kann es eigentlich nicht sein.

  4. hi,

    $a = $xml->Liste[0]->Thema[0]->Content[0]->c1;
    echo $a;       // = 0.27
    echo $a*100;   // = 0
    echo $a+1;     // = 0

    Dass das nicht "funzt", weil $a ein SimpleXMLElement-Objekt ist, wurde ja schon festgestellt.

    Also "caste" den Wert erst mal explizit in einen float-Wert:

    $a = (float) $xml->Liste[0]->Thema[0]->Content[0]->c1;
    echo $a*100;
    echo $a+1;

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }