SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.10.2006, 13:42:57
Zudecke Zudecke ist offline
Junior Member
 
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
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>zzglMwSt (".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)
Mit Zitat antworten
  #2  
Alt 09.10.2006, 15:40:34
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
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($gs2".""")."<br>";
echo 
number_format($mp2".""")."<br>";
echo 
number_format($netto2".""")."<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($mp22".""")."<br>";
echo 
number_format($gs22".""")."<br>";

Ausgabe:
0.08
0.50 
__________________
Grüße Andes
Mit Zitat antworten
  #3  
Alt 10.10.2006, 09:29:05
Zudecke Zudecke ist offline
Junior Member
 
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
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)
Mit Zitat antworten
  #4  
Alt 10.10.2006, 10:44:28
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
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
Mit Zitat antworten
  #5  
Alt 17.10.2006, 09:49:05
Zudecke Zudecke ist offline
Junior Member
 
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
Beiträge: 315
AW: Zweistellige Werte auf-bzw. abrunden

Also kann man nicht angeben, ob auf- bzw abgerundet wird...
Mit Zitat antworten
  #6  
Alt 17.10.2006, 11:58:41
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
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
Mit Zitat antworten
  #7  
Alt 17.10.2006, 12:26:48
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
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!
Mit Zitat antworten
  #8  
Alt 17.10.2006, 17:12:06
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 35
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
Mit Zitat antworten
  #9  
Alt 19.10.2006, 10:07:17
Zudecke Zudecke ist offline
Junior Member
 
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
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)
Mit Zitat antworten
  #10  
Alt 19.10.2006, 11:42:02
R. Woitaschik R. Woitaschik ist offline
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
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array Werte vergleichen ghostface PHP Grundlagen 4 20.09.2006 10:02:16
SQL-Abfrage liest Werte nicht aus :( mattfi MySQLi/PDO/(MySQL) 7 11.12.2005 21:06:08
post werte an frames weitergeben Stifler HTML, CSS und JavaScript Help! 3 18.12.2004 19:57:20
werte addieren Jonny PHP Grundlagen 3 13.01.2004 17:41:32
RGB in Hex Werte umwandeln Niels PHP für Fortgeschrittene und Experten 7 15.12.2002 19:11:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:25:59 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt