Hoi,

Ik heb deze regel in mijn script staan:

echo '<div class="woocommerce-message">Je bent € ' . ($maximum - $current) . ' verwijderd van GRATIS verzending binnen Nederland!</div>';

Ik wil de uitkomst graag afronden in 2 cijfers achter de komma.
dus 0,05 cent ipv 0,050000011 cent.

Wie kan mij helpen??

Groet Henk
ik moet Adoptive Solution gelijk geven want dit is iets dat je echt in 2 sec kan vinden op internet
echter is dit toevalig iets wat ik heel veel heb moeten doen dus zal ik je helpen

het kan eigelijk op meerdere manieren
wat Adoptive Solution bedoeld is simpelweg de functie round()

voorbeeld

 round(0,050000011, 2);

maakt dus 0,05

andere manier is number_format()
echter raad ik deze voor simpelweg afronden af

number_format(0,050000011, 2);

wordt dus ook 0,05
verder info kan je hierover vinden op php.net
round() is om af te ronden. Als je echter een getal afrond met minder decimalen, dan krijg je er niet zomaar automagisch "nullen" bij.
print(round(5.10,2)); //5.1
print(round('5.10',2)); //5.1

Met number_format() formatteer je een nummer, en dan krijg je dus een string (stuk tekst) terug. En dus evt. extra nullen op het eind. Maar let op, met de default parameters komt er ook een komma tussen de duizendtallen:
print(number_format('5000.10',2)); //'5,000.10'
En met die komma gaat PHP het niet meer als een getal zien ...
In aanvulling op Rob:

round() gebruik je om getallen af te ronden waarna je er mee verder kunt rekenen of dit afgeronde getal kunt bewaren (bijvoorbeeld in de database).

number_format() gebruik je enkel voordat je het getal "in een bepaald formaat" wilt tonen. Dit gebruik je dus typisch bij de output (In de HTML, een email of een PDF). je kunt er hierna niet meer mee rekenen.

<?php

$price = 1110.90;
$btw_percentage = 0.21;
$btw_amount = $price * $btw_percentage; // 233.289

// voorkom afrondings verschillen
$btw_amount = round($btw_amount, 2); // afronden op centen: 233.29
$price_incl = $price + $btw_amount; // Yeah ik kan nog steeds rekenen met het afgeronde BTW bedrag :-)
echo number_format($price, 2, ',', '.') . ' + ' . number_format($btw_amount, 2, ',', '.') . ' = ' . number_format($price_incl, 2, ',', '.');

?>
Resultaat:

1.110,90 + 233,29 = 1.344,19
Bedankt voor de reacties,

Voor jullie natuurlijk allemaal gesneden koek, voor mij niet.
Ik ben geen programmeur en weet hier niet veel van.

Sorry voor mijn onwetendheid, ik wilde alleen een stukje in mijn website mooier maken voor de bezoekers.

Gelukkig heb ik meer verstand van ..... :-)
Frank Nietbelangrijk op 09/09/2019 21:51:46
round() gebruik je om getallen af te ronden waarna je er mee verder kunt rekenen

Actually, tussentijds afronden is nagenoeg nooit een goed idee. Afronden doe je bij voorkeur helemaal aan het einde.

Maar inderdaad, iets afronden en (vervolgens) tonen met twee decimalen precisie zijn twee verschillende dingen.
even iets anders tussendoor hoor wisten jullie dat belasting-technisch afronden op 2 decimalen, eigenlijk helemaal niet goed is

de overheid en dan voornamelijk de belastingdienst wil eigenlijk dat als je gaat rekenen het afrond op 3 decimalen, en als de gehele som klaar is pas naar 2

dit heeft te maken met cent verschillen
kleine uitleg hieronder

afronden gaat zo 1 tot 4 is afronden naar beneden
5 tot 9 is afronden naar boven

dus even een voorbeeld
4,55511 + 4,55511 = 9,11022 afgerond 9,11
echter als je deze dus eerst zou afronden dan wordt het
4,56 + 4,56 = 9,12
Nee, er zijn twee afrondingsmethoden voor verkoopprijzen en factuurbedragen. Daarvan moet je er één consistent aanhouden (in accountancy de bestendige gedragslijn genoemd):


Bij het afronden mag u kiezen uit 2 methodes:

• U rondt af per geleverd goed of verrichte prestatie.
• U rondt het totaalbedrag af.


De derde afrondingsmethode is eenvoudiger maar pas je later toe: je mag bedragen in belastingaangiften in je voordeel afronden op hele euro's, dus lasten naar boven en baten naar beneden.

Zie: https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/administratie_bijhouden/facturen_maken/btw-bedrag_afronden
jup dat klopt maar ik maak bv online boekhoud software
en dan gelden er iets andere regels
zolang ik de bedragen niet laat zien aan de klant moet ik ze berekenen met 3 decimalen
op het moment dat er een bedrag in beeld komt en dus afgerond dan is dit met 2 decimalen
en dus vast
ik kan dit niet meer terug draaien want dan komen er fouten :)

die euro afronding heeft de belastingdienst toen ingevoerd omdat veel mensen dus niet goed boekouding doen en er dus altijd cent verschillen zijn

in goede boekhoud software heb je dit dus niet

met cent verschillen kan het belasting verschil soms wel duizenden euros zijn
daarom moet in officiele software het berekent worden met 3



[size=xsmall]Toevoeging op 10/09/2019 14:32:00:[/size]

Ward van der Put op 10/09/2019 11:17:17


Zie: https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/administratie_bijhouden/facturen_maken/btw-bedrag_afronden



daarin staat precies wat ik dus ook zeg
//////////////////
U gebruikt voor de afronding van het btw-bedrag de rekenkundige methode. Als het bedrag van de verschuldigde btw op de factuur bestaat uit meer dan 2 cijfers achter de komma, dan rondt u het 3e cijfer achter de komma af op hele centen. Dit doet u als volgt:

Is het 3e cijfer achter de komma lager dan 5, dan rondt u het bedrag naar beneden af.
Is het 3e cijfer achter de komma 5 of hoger, dan rondt u het bedrag naar boven af.


het factuur is iets dat een klant of persoon voor zich krijgt en dus kan je deze afronden
echter wordt de gehele berekening die je dus niet ziet, gedaan met deze reken methode :P


[size=xsmall]Toevoeging op 10/09/2019 14:39:09:[/size]

elke andere manier van berekenen geeft op lange termijn problemen
ongeacht of het mag of niet

het zijn in princiepe maar centen, maar als je bv als bedrijf inkomstenbelasting moet betalen
of btw dan kunnen die centen heel gouw oplopen
in miljoenen bedrijven zit hierin heel veel geld

zo is onderandere het idee van bv bitcoins ook deels ontstaan

ik heb een keer voor een bedrijf de gehele boekhouding opnieuw gedaan om dat ze steeds kleine verschillen hadden
aan het eind had ik een belasting terug gave van meer dan 7,000 alleen vanwege die stomme centen


Reageren