Konvertierung von Strings (Zeichenketten) in Zahlen

Konvertierung von Strings in Zahlen

Die Funktionen product->getFPrice() und product->getFTPrice() sollen in
einer [{math assign=… equation="(x - y)" x=$bla y=$blubb}] verwendet
werden. Auf der Seite produziert diese math-assign-Anweisung dann einen:

Warning: Smarty error: math: parameter x: is not numeric in
/home/www/web208/html/testshop/Oxishop/core/smarty/Smarty.class.php on
line 1093

Fehler, wenn Werte verwendet werden, die >= 1000 sind.

Einige Tests haben ergeben, dass Werte >= 1000 folgendermaßen aus diesen
Funktionen kommen:

Bei x = 1000:

1.000,00

Meine Vermutung geht dahin, dass dieses Format als Zeichenkette
interpretiert wird, mit der sich natürlich nicht rechnen lässt.

Die Frage ist also, wie ich aus den Werten aus diesen Funktionen etwas
mache, das im Günstigsten Fall als float/double interpretiert werden
kann. Außerdem hätte ich noch gern gewusst, wie ich aus diesem Ergebnis
dann wieder eine entsprechend formatierte Zeichenkette machen kann

Ich hoffe Ihr könnt mir hier weiterhelfen.

Besten Dank im Voraus.

Ergänzend: Das Ganze bezieht sich auf folgenden Forums-Eintrag
http://www.oxid-esales.com/forum/showthread.php?t=8329

Hallo,

warum nicht im Controllen mit einem Modul die entsprechende Funktion bereit stellen? Das ganze im Template abzuhandeln ist doch viel aufwändiger!

Gruß Joscha

PS: Was für ne Versionsnummer hat dein Shop?

Lösung ist gefunden:

[{if $product->getFTPrice() or $product->getFPrice()|replace:",":"."
< $product->oxarticles__oxprice->value }][{assign var=“uvp"
value=$product->getFTPrice()|replace:”.":""|replace:",":"."}][{assign var=“price"
value=$product->getFPrice()|replace:”.":""|replace:",":"."}][{if
$product->oxarticles__oxtprice->value != 0}]<font
color="#ff0000"><br></b>Sie sparen <br><b>[{math assign=“ox_price"
equation=”( x - y)" x=$uvp y=$price }][{
$ox_price|number_format:“2.Of”|replace:".":","}] € !</b>[{/if}][{/if}] </font>

Bei mir was es Ab Zeillennummer 193 in detail.tpl einzufügen und schon geht es auch im 1000er Bereich.

Vielleicht kann es ein anderer auch noch benötigen :slight_smile: