Rappen und Öre Problem beim Währungsumschalten

Begonnen von mt, Juli 15, 2008, 09:48:14

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

mt

DANKE für die 'unsaubere Lösung' aber leider
funktioniert das Script nicht ganz korrekt  :(.

1. Es rechnet falsch um ca. 4-5 Kronen zuviel
2. Die Beträge sind immer noch krumm:
   37,90  -> 363,55 SEK (falsch)
   Wäre so richtig:
   37,90 -> 359.24 -> mit Rundung dann 359,- SEK (Rundung auf die Ganzzahl reicht im schwedischen)

Hier nochmal mein Script (Auszug):



my $waehrung = ssp::cart_read_var("curc");

if(($waehrung == 3) || ($waehrung == 4) || ($waehrung == 5)){
       
  my $price_new = $waehrung_pf * $endergebnis;
  $price_new = runden($price_new*20)/20;
   
  return $price_new / $waehrung_pf;

}
else {
     
       #...

}


Gruß
mt


mt

UUUPS! :-[

Berechnung ist richtig, hatte nen falschen Ausgangswert.
Aber der 2. Punkt ist leider immernoch


dobra

sorry wenn ich wieder einmische, aber versuch's mal so:

my $price_new = ($waehrung_pf * $endergebnis) + 0.5;
  $price_new = int($price_new);
mfG
dobra

ahe

Für SEK kann natürlich nicht die Funktion zur Rappenrundung verwendet werden ;)
MfG ahe

mt

Zitat von: ahe am Juli 15, 2008, 16:52:51
Für SEK kann natürlich nicht die Funktion zur Rappenrundung verwendet werden ;)

Ja schon klar, das hätte ich noch angepasst (wobei ich es auch für die Schweiz brauche).
trotzdem kommen Werte wie 358,88 SEK raus, heißt er ignoriert das runden. Nach
Rappenrundung müsste ja 358,85 stehen.

@dobra:
Kann leider gerade nicht testen, da ich gerade nicht in der Firma bin.

Gruß
mt


ahe

Hmmm, in meinem Testshop hat es funktioniert (Rundung auf 0,05 €) :-\
Werde mir das morgen nochmal anschauen.
MfG ahe

mt

Guten Morgen Zusammen,

habe jetzt noch ein paar mal an der Funktion gebastelt.
Fazit, das Skript ignoriert sämtliche Rundungen. Habe auch 'sprintf' versucht.

Ich vermute das es daran liegt, dass die Umrechnung nach 'modify_db_price'
geschieht, wir können da Dreisätze bilden und Runden wie wir wollen, der Shop
rechnet eben erst danach um und somit ist die Rundung futsch. Es gibt meiner
Meinung nach derzeit keine Möglichkeit den Preis NACH der Umrechnung zu beeinflussen.

Aber vielleicht irre ich mich ja.

Gruß
mt


ahe

Guten Morgen,

der Dreisatz sollte ja eigentlich genau das lösen.

Erst berechnet das Script die Fremdwährung wie das später auch ShopPilot macht.
Dann wird der Betrag gerundet und zurückgegeben wird der gerundete Betrag / Umrechnungsfaktor.
Wenn dieser zurückgegebene Wert später mit demselben Umrechnungsfaktor multipliziert wird,
sollt natürlich wieder der gerundete Wert heraus kommen.

$gerundeter_wert / $faktor * $faktor = $gerundeter_wert

Schicken Sie mir doch bitte mal Ihr Script per Mail an ahe [at] shoppilot.de
MfG ahe

mt

Hallo ahe,

das Script ist unterwegs.
Ich danke Ihnen schonmal für Ihre Mühe.

Gruß
mt