CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |

09.10.2006, 13:42:57
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 47
Beiträge: 315
|
|
Zweistellige Werte auf-bzw. abrunden
Hallo, wie kann mann festlegen, dass Zahlen bis zwei Stellen nach dem Komma auf- bzw. abgerundet werden? Hier mein Code:
PHP-Code:
...
$netto=100-MWST;
$netto="0.$netto";
$mwst="0.".MWST;
...
<table>
<tr>
<td width='80'>Nettobetrag:</td>
<td align='right'>".number_format($row_wore_set['preis']*$netto,2,",","")." Euro</td>
</tr>
<tr>
<td>zzgl. MwSt (".MWST."%):</td>
<td align='right'>".number_format($row_wore_set['preis']*$mwst,2,",","")." Euro</td>
</tr>
<tr>
<td>Rechnungsbetrag:</td>
<td align='right'><b><u>".number_format($row_wore_set['preis'],2,",","")." Euro</u></b></td>
</tr>
</table>
...
Mein Problem ist, dass bei einem Rechnungsbetrag von 0,50 € und einer angenommenen Mehrwertsteuer von 19% der Nettobetrag aufgerundet 0,41 ergibt und die Mehrwertsteuer ebenfalls aufgerundet 0,10. Zusammen ergibt das dann dummerweide 0,51.
Gibt es für "number_format" einen Parameter, mit dem man festlegen kann, dass er auf- bzw. abrunden soll? Oder gibt es da was anderes?
Danke im Voraus.
Geändert von Zudecke (09.10.2006 um 13:44:18 Uhr)
|

09.10.2006, 15:40:34
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 57
Beiträge: 930
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Wie kommst du auf deine Rechnung? Dein Script ist auch nicht gerade verständlich. Am Anfang versuchst du mit Strings zu rechnen. Dann setzt du bei $netto selbst eine 0 davor.
Wieso das denn? number_format() rundet schon auf die angegebene Nachkommastellen.
PHP-Code:
//Beispiel bei dem die MWST von einem Brutto-Betrag ermittelt wird.
$gs = 0.50;
$mwst = 19;
$mp = $gs * 19 / 119;
$netto = $gs - $mp;
echo number_format($gs, 2, ".", "")."<br>";
echo number_format($mp, 2, ".", "")."<br>";
echo number_format($netto, 2, ".", "")."<br>";
Ausgabe:
0.50
0.08
0.42
//Beispiel bei dem Brutto berechnet wird
$netto = 0.42;
$mp2 = $netto * 19 / 100;
$gs2 = $netto + $mp2;
echo number_format($mp2, 2, ".", "")."<br>";
echo number_format($gs2, 2, ".", "")."<br>";
Ausgabe:
0.08
0.50
__________________
Grüße Andes
|

10.10.2006, 09:29:05
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 47
Beiträge: 315
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Aber wenn rein zufällig bei $mp und $netto *.**5 rauskommt, dann wird doch durch die nachträgliche Rundung von number_format() beides aufgerundet und somit weicht das Ganze dann vom Bruttobetrag um einen Cent ab...
Geändert von Zudecke (10.10.2006 um 09:29:55 Uhr)
|

10.10.2006, 10:44:28
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 57
Beiträge: 930
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Das mag vielleicht sein, dass man ein verfälschtes Ergebnis erhalten kann. Bloß um eine Rechnung zu stellen, wird der Rechnungsbetrag immer ausgehend von einem Nettobetrag errechnet und nicht umgekehrt.
__________________
Grüße Andes
|

17.10.2006, 09:49:05
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 47
Beiträge: 315
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Also kann man nicht angeben, ob auf- bzw abgerundet wird...
|

17.10.2006, 11:58:41
|
Member
|
|
Registriert seit: Jun 2006
Ort: Bayern
Alter: 57
Beiträge: 930
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Nein, kann man nicht. Auch, wenn dies möglich wäre. An was würdest du es fest machen, ab wann ab- bzw. aufgerundet werden soll?
Du müsstest dann ja in Abhängigkeit des ersten Wertes den zweiten Wert auf- bzw. abrunden.
__________________
Grüße Andes
|

17.10.2006, 12:26:48
|
Member
|
|
Registriert seit: Mar 2006
Alter: 39
Beiträge: 599
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Dies würde mich auch interessieren wann du wie runden möchtest.
Das aufgerundet von 5 bis 9 wird (und umgekehrt 0 bis 4 abgerundet) ist allgemein gültig. Sowas verdrehen wäre quatsch. Entweder du rundest da dann nicht oder musst die Tolleranz bei der Ausgabe hinnehmen (+/- 0,5).
Vielleicht verstehen wir dich aber auch nur falsch ;)
__________________
In der Ruhe liegt die Kraft!
|

17.10.2006, 17:12:06
|
Senior Member
|
|
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 36
Beiträge: 1.476
|
|
AW: Zweistellige Werte auf-bzw. abrunden
nun einfache Mathematik *g*
PHP-Code:
//Zu prüfende Zahl
$zahl = 123123.124999;
//* 100 damit wir nun nach dem Komma die Zahlen haben von denen die Rundung abhängt
$zahl = $zahl * 100;
//Von der Kommazahl die nächstkleinere Ganzzahl abziehen
//Wenn der Rest grösser/gleich 0.5 ist rundet round() auf ansonsten ab...
if($zahl - floor($zahl) >= 0.5)
{
echo "auf";
}else{
echo "ab";
}
somit weist du dann ja ob die Zahl nun auf oder abgerundet wurde...
sonst zum runden einfach mal noch die Funktionen floor/ceil/round anschauen!
da kannst eigentlich alles machen wenn du nicht vergisst das man Zahlen auch noch mit Zahlen wie 10 multiplizieren kann um die Kommastelle zu verschieben ;)
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!
Betatester gesucht:
Skiclub Gams / CEVI Grabs
|

19.10.2006, 10:07:17
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 47
Beiträge: 315
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Ich hab jetzt hier folgende Rechnung:
PHP-Code:
$brutto=$row_wore_set['preis'];
$mp=$brutto*MWST/(100+MWST);
$netto=$brutto-$mp;
//Ausgabe
... ".number_format($mp,2,",","")." ....
... ".number_format($netto,2,",","")." ....
Brutto = 24,03
MwSt = 20% = 4,005 ~ 4,01
Netto = 20,025 ~ 20,03
Mwst gerundet + Netto gerundet ergibt 24,04
Das Ergebnis ist um einen Cent verfälscht. Meine Idee wäre gewesen, ich Runde die MwSt immer ab und den Nettobetrag immer auf, damit Brutto dafür wieder immer stimmt. Hmmm.
Aber mit einer Multiplikation von 100 und der Verwendung von floor() und ceil() kann man das ja so machen :-} .
Geändert von Zudecke (19.10.2006 um 10:12:17 Uhr)
|

19.10.2006, 11:42:02
|
Anfänger
|
|
Registriert seit: Nov 2004
Ort: Düsseldorf
Beiträge: 99
|
|
AW: Zweistellige Werte auf-bzw. abrunden
Hi Zudecke,
mach es doch einfach.
Brutto = 24,03
MWSt = 20% = 4,005 ~ 4,01
Netto = 24,03 - 4,01 = 20,02
Funktioniert immer und führt zu keinen Rundungsdifferenzen.
Gruß
Richard
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:49:46 Uhr.
|