Rundungsproblem

Rundungsproblem

am 25.09.2006 22:23:12 von r.hoessel

Hallo!

In einem Online-Shop habe ich folgendes Problem:

Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:

Beiden MwSt.-Sätzen von 7 oder bald 19% ist das nicht so einfach.

also z.B. nicht 21.03 ? sondern in dem Fall aufgerundet auf 21.05 ?

oder nicht 25.04 ? sondern dafür 25.05 ?.

Auf Grund dieser Rundungen sollen dann die Nettopreise festgelegt werden.

Nun brauche ich eine Funktion welche mir die Preise entsprechend auf- oder
abrundet.

Wer kann helfen?

Rüdiger

Re: Rundungsproblem

am 25.09.2006 22:58:19 von Johannes Mueller

Rüdiger schrieb:

> In einem Online-Shop habe ich folgendes Problem:
>
> Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:
>
> Beiden MwSt.-Sätzen von 7 oder bald 19% ist das nicht so einfach.
>
> also z.B. nicht 21.03 ? sondern in dem Fall aufgerundet auf 21.05 ?
>
> oder nicht 25.04 ? sondern dafür 25.05 ?.
>
> Auf Grund dieser Rundungen sollen dann die Nettopreise festgelegt
> werden.
> Nun brauche ich eine Funktion welche mir die Preise entsprechend
> auf- oder abrundet.

Das ist jetzt mit Sicherheit nicht elegant, aber das ist mir egal - ist
ja auch schon spät! Was Du mit abrunden meinst, wird bei deiner
Beispielwahl nicht ganz klar (sprich 21.03 -> 21.05 ??) - du scheinst
mir eher einen Algorithmus für konsequentes aufrunden zu benötigen (was
ich auch im Code umgesetzt habe). Was das wiederum mit den MWSt-Sätzen
und den Nettopreisen zu tun hat muss ich ja nicht verstehen.

--code--
function runden($preis){
$tmp = $preis*100;
$letztesZeichen = substr($preis,-1,1);
if($letztesZeichen < 5 && $letztesZeichen > 0){
return ($tmp+(5-$letztesZeichen))/100;
}
if($letztesZeichen > 5 && $letztesZeichen <=9){
return ($tmp+(10-$letztesZeichen))/100;
}
if($letztesZeichen == 0 OR $letztesZeichen == 5){
return $preis;
}
}

var_dump(runden(27.96));
--/code--

Gute Nacht
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Rundungsproblem

am 25.09.2006 23:20:00 von Johannes Mueller

Johannes Mueller schrieb:

> Rüdiger schrieb:
>
>> In einem Online-Shop habe ich folgendes Problem:
>>
>> Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:
>>
>> Beiden MwSt.-Sätzen von 7 oder bald 19% ist das nicht so einfach.
>>
>> also z.B. nicht 21.03 ? sondern in dem Fall aufgerundet auf 21.05 ?
>>
>> oder nicht 25.04 ? sondern dafür 25.05 ?.
>>
>> Auf Grund dieser Rundungen sollen dann die Nettopreise festgelegt
>> werden.
>> Nun brauche ich eine Funktion welche mir die Preise entsprechend
>> auf- oder abrundet.
>
> Das ist jetzt mit Sicherheit nicht elegant, aber das ist mir egal -
> ist ja auch schon spät! Was Du mit abrunden meinst, wird bei deiner
> Beispielwahl nicht ganz klar (sprich 21.03 -> 21.05 ??) - du scheinst
> mir eher einen Algorithmus für konsequentes aufrunden zu benötigen
> (was ich auch im Code umgesetzt habe). Was das wiederum mit den
> MWSt-Sätzen und den Nettopreisen zu tun hat muss ich ja nicht
> verstehen.
> --code--
> function runden($preis){
> $tmp = $preis*100;
> $letztesZeichen = substr($preis,-1,1);
------------------------------^^^^^^

muss natürlich:

$letztesZeichen = substr($tmp,-1,1);

heissen!

sorry
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Rundungsproblem

am 25.09.2006 23:44:37 von Niels Braczek

Rüdiger schrieb:
^^^^^^^
Gib hier bitte auch deinen Nachnamen an.

> In einem Online-Shop habe ich folgendes Problem:
> Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:
> Beiden MwSt.-Sätzen von 7 oder bald 19% ist das nicht so einfach.
> also z.B. nicht 21.03 ? sondern in dem Fall aufgerundet auf 21.05 ?

Übliches Problem in Skandinavien.

> oder nicht 25.04 ? sondern dafür 25.05 ?.

$brutto =3D round( $brutto * 20 ) /20;

> Auf Grund dieser Rundungen sollen dann die Nettopreise festgelegt werde=
n.

$netto =3D $brutto / ( 1 + $mwstsatz/100 ); // Nicht runden!

> Nun brauche ich eine Funktion welche mir die Preise entsprechend auf- o=
der=20
> abrundet.

7. Klasse-Stoff.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Rundungsproblem

am 26.09.2006 00:26:32 von Johannes Mueller

Johannes Mueller schrieb:

[code zum runden]

So, nachdem ich mir jetzt den Output von Niels Lösung angesehen habe -
vergiss, was ich da geschrieben habe... ich verstehe jetzt auch die
Geschichte mit dem Abrunden...

Grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Rundungsproblem

am 26.09.2006 18:04:03 von r.hoessel

"Niels Braczek" schrieb im Newsbeitrag
news:ef9ijr$vud$02$1@news.t-online.com...
Rüdiger schrieb:
^^^^^^^
Gib hier bitte auch deinen Nachnamen an.

> In einem Online-Shop habe ich folgendes Problem:
> Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:
> Beiden MwSt.-Sätzen von 7 oder bald 19% ist das nicht so einfach.
> also z.B. nicht 21.03 ? sondern in dem Fall aufgerundet auf 21.05 ?

Übliches Problem in Skandinavien.

> oder nicht 25.04 ? sondern dafür 25.05 ?.

$brutto = round( $brutto * 20 ) /20;

> Auf Grund dieser Rundungen sollen dann die Nettopreise festgelegt werden.

$netto = $brutto / ( 1 + $mwstsatz/100 ); // Nicht runden!

> Nun brauche ich eine Funktion welche mir die Preise entsprechend auf- oder
> abrundet.

7. Klasse-Stoff.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
------------------------------------------------------------ ------


Hallo!

Vielen Dank Euch beiden!

Gruss Rüdiger

Re: Rundungsproblem

am 29.09.2006 23:12:14 von jbusenet

Rüdiger wrote:
> Hallo!
>
> In einem Online-Shop habe ich folgendes Problem:
>
> Der Betreiber möchte nur Brutto-Preise mit 0 oder 5 am Ende:

Ok, wenn ich Dein Problem richtig verstandne habe, dann ist das trivial:

$preis_glatt_butto=20*round($preis_krumm_brutto*20)

und daraus einen Netto wert zu machen ueberlasse ich Dir, oder habe ich
was falsch verstandne. Ist aber eher was fuer
de.mathe..."keine.ahnung.wie.weiter"


cheers

Julian
--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.

Re: Rundungsproblem

am 29.09.2006 23:14:42 von jbusenet

Niels Braczek wrote:

> 7. Klasse-Stoff.

das hat unser designierter Mathe Prof auch immer gesagt;-) Allerdings
sollten wir das in der siebten schon einemal wiederholt haben.

cheers

Julian

--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.

Re: Rundungsproblem

am 30.09.2006 15:26:41 von Claus Reibenstein

Julian Bessenroth schrieb:

> $preis_glatt_butto=20*round($preis_krumm_brutto*20)

Wohl eher round(...)/20 statt 20*round(...) :-)

Gruß. Claus

Re: Rundungsproblem

am 01.10.2006 09:13:39 von jbusenet

Claus Reibenstein wrote:
> Julian Bessenroth schrieb:

>>$preis_glatt_butto=20*round($preis_krumm_brutto*20)
>
> Wohl eher round(...)/20 statt 20*round(...) :-)

oeh, jep, richtig.

cheerio

Julian

--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.