Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 16. März 2016 10:10

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

[GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Jehmineh - ich bin so dumm.

Ich habe im Formbuilder-Template einen kleinen Preisrechner gebastelt. Stückzahl mal Einzelpreis plus Porto Ausland oder ggf Porto Inland. Funktioniert an sich auch.

In der Regel kommen da recht gerade Summen zusammen. zB 48,90.

Ich kriege es aber einfach nicht hin, die Null dranzuhängen. Einfach dranschreiben geht auch nicht, weil ab und zu auch Summen ohne Komma rauskommen. Dann würde aus 250 dann 2500, was ja keiner will.

Ich habe es auch schon mit |string_format:"%.2f" versucht. Da wurden dann gar keine Kommastellen mehr gezeigt und die Vorkommastellen wurden abgerundet.

Erfolglos blieb ebenfalls |round: "2" (was wohl auch nicht für Strings gedacht ist) und |number_format:2.

Hier die Bedingung im Template (Absender- und Empfänger-Mail):

[== smarty ==]
{assign var='betrag' value=$fld_49*$fld_66}
{if $fld_49 > 1 && $fld_49 <= 10 && $fld_68 == "Deutschland"}
Betrag: {$betrag+$fld_64} € inkl. {$fld_64} €Versandkosten
{elseif $fld_49 < 2 && $fld_68 == "Deutschland"}
Betrag: {$betrag+$fld_63} € inkl. {$fld_63} € Versandkosten
{elseif $fld_62 != "Deutschland"}
Betrag: {$betrag+$fld_65} € inkl. {$fld_65} € Versandkosten
{/if}

_49 = Stückzahl (1-10), Dropdown
_66 = Stückpreis (14.90), hidden
_64 = Porto große Menge (4.00), hidden
_63 = Porto Einzelstück (2.00), hidden
_65 = Porto Ausland (5.00), hidden

Ich habe auch schon andere Schreibweisen für die Zahlen probiert. Vielleicht sollte ich nicht mit Strings arbeiten?

Frage: Lässt sich eine Summe mit zwei Stellen hinter dem Komma erzwingen und wenn ja wie? Perfekt wäre natürlich auch, wenn volle Summe mit Kommastellen ausgegeben werden (250,00 statt 250)

Danke im voraus für jeden, der mir den Schlauch unter den Füßen wegzeiht.

Beitrag geändert von antibart (16. März 2016 10:37)

Offline

#2 16. März 2016 11:12

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Wo genau hast Du versucht die Zahl zu formatieren?
Vor oder nach dem Berechnen?
Denn wenn ich |string_format:"%.2f" nach dem Berechnen bei der Ausgabe verwende, dann kommt da genau das raus, was Du meiner Meinung nach haben wolltest.
Bsp:

Betrag: {($betrag+$fld_64)|string_format:"%.2f"} € inkl. {$fld_64|string_format:"%.2f"} € Versandkosten

Ergibt z.B.:

Betrag: 48.70 € inkl. 4.00 € Versandkosten 

Round() und Number_format() würde ich nicht verwenden, weil die ja durch Runden das Ergebnis verfälschen können.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 16. März 2016 11:26

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Danke schonmal fürs Antworten.

Ich habe es genauso gemacht wie du, denke ich.

Hier nochmal direkt und unkontrolliert copy/paste

[== smarty ==]
Anzahl DVD's: {$fld_49}
{if $fld_49 > 1 && $fld_49 <= 11 && $fld_68 == "Deutschland"}
Betrag: {$betrag+$fld_64|string_format:"%.2f"} € inkl. {$fld_64} €Versandkosten
{elseif $fld_49 < 2 && $fld_68 == "Deutschland"}
Betrag: {$betrag+$fld_63|string_format:"%.2f"} € inkl. {$fld_63} €  Versandkosten
{elseif $fld_62 != "Deutschland"}
Betrag: {$betrag+$fld_65|string_format:"%.2f"} € inkl. {$fld_65} € Versandkosten
{/if}

Mail:

Anzahl DVD's: 2
Betrag: 53,8 € inkl. 4 €Versandkosten

Vielleicht sind die Anführungsstriche doof?

Beitrag geändert von antibart (16. März 2016 11:27)

Offline

#4 16. März 2016 11:30

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Oh - ich sehe ein Klammer wink

Das war's - immer wieder die Syntax. sad

Hab Dank

Beitrag geändert von antibart (16. März 2016 11:33)

Offline

#5 16. März 2016 11:45

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

antibart schrieb:

Vielleicht sind die Anführungsstriche doof?

Nöö, doof nicht, machen die Templates aber meiner Meinung nach unnötig unübersichtlich wink.

Ich halte es immer so - einfache Anführungszeichen für Smarty / Parameter etc., doppelte Anführungszeichen für die HTML-Attribute.

Offline

#6 16. März 2016 13:25

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Oh - ich sehe ein Klammer

Richtig.
Ansonsten gilt das Format ja nur für die eine Zahl, jedoch nicht für das Ergebnis der Operation.
(Erst rechnen)|dann formatieren.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 16. März 2016 13:51

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Wenn schon Pseudo-Code, dann

{(Erst rechnen)|dann formatieren}

big_smile  big_smile  big_smile

Offline

#8 16. März 2016 16:21

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: [GELÖST] Summe mit zwei Stellen hinter dem Komma erzwingen

Schön formuliert.;)

Offline