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.