Sven Rautenberg: PHP Float - wird nicht berechnet?

Beitrag lesen

Moin!

Hi there,

<?php echo $shippingcost+(float)substr($order_total_display,13);?>


> >   
> > Es werden aber nur die Versandkosten ausgegeben. Hat jemand ne Idee?  
>   
>   
> selbst wenn float eine Funktion wäre, wäre Deine Notation syntaktisch falsch.  
  
Wieso das? Weil der Typecasting-Operator "(float)" nicht auf das Funktionsergebnis von substr() angewendet werden kann? Würde es dann nicht schlicht zu einem PHP-Fehler kommen, über den Bruzzler sich hätte beschweren können?  
  
Angeblich werden ja die Versandkosten ausgegeben. Das kann ja nur passieren, wenn der zweite Summand zero wäre. Und das wiederum passiert vermutlich nur, wenn das Ergebnis der Funktion substr() etwas ist, was als float gecastet genau diese 0 ergibt. Also alles, was nicht eine von 0 verschiedene Zahldarstellung ist.  
  
Das Debugging sollte also genau beim Funktionsergebnis von substr() ansetzen: Kommt da raus, was man erwartet?  
  
Die möglichen Rundungsfehler von Fließkommaberechnungen kriegen wir dann später... :)  
  
 - Sven Rautenberg