login  Naam:   Wachtwoord: 
Registreer je!
 Forum

prijs uitrekenen

Offline Behemutant - 21/02/2008 15:25 (laatste wijziging 21/02/2008 15:31)
Avatar van BehemutantNieuw lid Hallo allemaal.

Ik heb een prijs in mijn MYSQL staan.
En op mijn pagina de volgende code (genereren van een .PDF):

  1. $Tbedrag = "".substr($oFetch['prijs'], 0, -2).",".substr($oFetch['prijs'], -2)."";
  2. $bedragEx = ($Tbedrag / 100) * 19;
  3. echo $pdf->Cell(10,10, "".$bedragEx." excl 19% BTW",0,1 );


Het probleem:

$Tbedrag geeft netjes weer 1234,56 zoals het ook moet (incl btw).
$bedragEX geeft weer 234,46 dus het gaat ergens fout! kan iemand mij svp vertellen hoe ik dit kan oplossen?

Prijzen zijn in mysql opgeslagen ZONDER comma dus 1234,56 is in mijn MYSQL gewoon 123456.

Zoals je zit in de eerste regel, splits ik de prijs ook om er een comma tussen te plaatsen.

  1. $Tbedrag = "".substr($oFetch['prijs'], 0, -2).",".substr($oFetch['prijs'], -2)."";

11 antwoorden

Gesponsorde links
Offline BramBo - 21/02/2008 15:29
Avatar van BramBo JS gevorderde Dat klopt ook als je de berekening bekijkt. Je berekent het btw bedrag niet het bedrag zonder btw:

1234,56 / 100 = 12,3456 * 19 = 234,5664
oftwel je dient het verkregen bedrag in $bedragEx nog af te trekken van $Tbedrag.
Offline Behemutant - 21/02/2008 15:35
Avatar van Behemutant Nieuw lid dus... dan zou het moeten worden:

$resultaat = ($Tbedrag - $bedragEx);

?
Offline BramBo - 21/02/2008 15:46
Avatar van BramBo JS gevorderde Yup, of
  1. $bedragEx = $Tbedrag - (($Tbedrag / 100) * 19);
Offline Threetimes - 21/02/2008 15:48 (laatste wijziging 21/02/2008 15:49)
Avatar van Threetimes PHP beginner of
  1. $bedragEx = $Tbedrag * 0.81;


edit: waarom sla je de bedragen zonder komma op?
Offline Behemutant - 21/02/2008 15:48 (laatste wijziging 21/02/2008 16:28)
Avatar van Behemutant Nieuw lid 1234, 56 incl 19% BTW 999.54 excl 19% BTW
(excl. zou 1037,44 moten zijn toch?)


Klopt niet helemaal of wel? wat ik nu heb:

  1. $Tbedrag = "".substr($oFetch['prijs'], 0, -2).",".substr($oFetch['prijs'], -2)."";
  2. $bedragEx = ($Tbedrag / 100) * 19;
  3. $resultaat = ($Tbedrag - $bedragEx);
  4. echo $pdf->Cell(10,10, "".$resultaat." excl 19% BTW",0,1 );



p.s. had ik in mijn database bedragen INCL. comma kunnen zetten? en er dan nog mee kunnen rekenen? dus geen 123456 in mijn mysql database maar 1234,56 ?
Offline Threetimes - 21/02/2008 16:33
Avatar van Threetimes PHP beginner als je het als GETAL (bijv. DECIMAL(10,2) ) opslaat, snapt MySQL echt wel wat een komma (met een K) is.

1234,56 * 0.81 = 999,9936

dus geen 999,54 of 1037,44, allebei fout 
Offline Behemutant - 21/02/2008 16:47 (laatste wijziging 21/02/2008 16:49)
Avatar van Behemutant Nieuw lid oke gaan we dat veranderen denk ik maar hoe kan ik dan op 999,54 uitkomen inplaats van 999,99 ?
want de code is goed toch?
Offline Threetimes - 21/02/2008 17:27
Avatar van Threetimes PHP beginner afrondingsfouten??
juiste datatype?
etc.?
Offline Behemutant - 21/02/2008 17:36
Avatar van Behemutant Nieuw lid dat zegt mij vrij weinig nog helaas, zal eens gaan kijken wat ik kan vinden... iemand anders die mij iets meer kan vertellen hoe dit te fixen alstublieft?

ceil($resultaat) heb ik wel geprobeerd maar dan wordt het niet 999,99 maar 1000,-
Offline Threetimes - 21/02/2008 18:29
Avatar van Threetimes PHP beginner als $Tbedrag exact 1234.56 is weet ik het ook niet...
is het niet per ongeluk 1234.57 ofzo?
Offline Behemutant - 21/02/2008 19:48
Avatar van Behemutant Nieuw lid 1234, 56 incl 19% BTW 999.54 excl 19% BTW


dus echt 1234,56 incl 19% ja...
en daar trek ik dan het BTW bedrag vanaf:

  1. $Tbedrag = "".substr($oFetch['prijs'], 0, -2).",".substr($oFetch['prijs'], -2)."";
  2. $bedragEx = ($Tbedrag / 100) * 19;
  3. $resultaat = ($Tbedrag - $bedragEx);
  4. echo $pdf->Cell(10,10, "".ceil($resultaat)." excl 19% BTW",0,1 );
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.581s