Auswahllisten Modul und Rundungsfehler

Hallo Ihr Lieben,

Ich versuche derzeit in einem Module dafür zu Sorgen das Auswahllisten Aufpreise unabhängig von der Anzahl der Artikel (also nur einmal) aufgerechnet werden. Das Modul an sich funktioniert ja einwandfrei, problem ist nur das ich extrem hässliche Rundungsfehler bekomme. Ein Beispiel (folgendes ist ein Modul auf oxarticles):

	public function getBasketPrice( $dAmount, $aSelList, $oBasket ){
		
		$params = $this->getPersParams();
		
		if($params["ismvpath"] == 1){
			$selList = $this->_getSelList($aSelList);
			$pPrice = parent::getBasketPrice ( $dAmount, $selList, $oBasket );
			$selPrice = $this->_getSelectListPrice($aSelList);	
			if($dAmount > 0){
				$pPrice->add(  $selPrice / $dAmount );				
			}
					
			return $pPrice;
		}else{
			return parent::getBasketPrice ( $dAmount, $aSelList, $oBasket );
		}
		
	}

Was ich vorhabe ist eine abgeänderte Berechnung des Preises im Warenkorb, alle Auswahllisten die einen absoluten Aufschlag haben sollen einmalig aufgerechnet werden - die Prozentbasierten wie gehabt. Wie gesagt alles kein Problem, nur leider sorgt folgende Zeile für Probleme:

$pPrice->add(  $selPrice / $dAmount );

Mir ist auch klar warum, schließlich könnten bei dieser Umrechnung ja Zahlen mit langen oder unendlichen Nachkomma stellen rauskommen. Die Frage ist nun wie ich diesen Preis nun am besten berechnet bekomme ohne diese Rundungsfehler.

Kleines Rechenbeispiel:

Grundpreis für 249 Stück = 99,60 Euro
-> dazu kommt eine Auswahl mit Preis von 11,00 Euro
-> daraus folgt ein Einzelpreis der Auswahl von 11,00 / 249 Euro = 0,044176706827309
-> Rechne ich nun diesen Preis auf den Einzelpreis auf entsteht (verständlicherweise) ein Rundungsfehler und ich bekomme einen Endpreis von 109,56 €, erwartet hätte ich einen Endpreis von 99,60 + 11,00 Euro = 110,60 Euro.

Warum machst Du die Division und addierst nicht gleich den Auswahlpreis zum Grundpreis?

Ich möchte den Auswahllisten Preis nur ein mal berechnen, egal wie viele Artikel gekauft werden. Wenn ich den Auswahllisten Preis auf den Grundpreis aufrechne dann wird dieser mit der Anzahl multipliziert. Es geht konkret um Flyer und dergleichen, ein Flyer kostet 0.01 € und ich möchte nicht das der Flyer dann 11.01€ kostet pro Stück.

Hallo,

wir testen gerade die mit CE 4.7.7 und haben zum den Auswahllisten ein ähnliches Problem.

Die Wert der abs. Auswahlliste (bspw. 5,-EUR) sollen sich nicht mit der Anzahl multiplizieren sonder nur einmal aufgerechnet werden. Gibt es dafür vielleicht eine Einstellung die wir übersehen haben oder ist das nur durch die hier aufgeführte Code-Änderung möglich?
In der Doku und Forum haben wir leider nichts gefunden.
Vielen Dank.