[php] 10,6 --> 10,60

Pagina: 1
Acties:

Onderwerpen


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met berekeningen in php. Ik wil de btw uitrekenen.

Ik heb 10 euro. daar wil ik 6% btw
code:
1
2
    $procent = $totaal_kostencode/100;
    $zes_procent = $procent * 6;

de waarde is 0.6

dan die ik 10 + 0.6 = 10.6
Logies maar ik wil eigenlijk 10.60 eruit krijgen

Maar ik krijg het niet voor elkaar 8)7 Ik heb round geprobeerd
code:
1
round($zes_procent ,2)

Maar hij rond dan af op 2 decimalen maar zet er geen decimale bij. Hoe krijg ik dat voor elkaar. Is er iemand die mij een klein zetje in de juiste richting wil geven _/-\o_

Jochemmol


  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Kan ik zo ff geen functie voor bedenken, maar kan je niet checken hoeveel decimalen er achter de komma staan, en indien het er 1 is, dit doen:
PHP:
1
$zes_procent = $zes_procent . "0";


Hij rond namelijk toch niet af naar 1 decimaal als de tweede geen nul is :)

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

probeer het eens met de functie sprintf().
Die output een string volgens bepaald format (dus bijv x aantal tekens, een punt of comma en dan 2 tekens)

http://nl3.php.net/manual/en/function.sprintf.php

edit: number_format() is ook wel een goeie voor dit doel
http://nl3.php.net/manual/en/function.number-format.php

[ Voor 22% gewijzigd door McKaamos op 27-09-2006 17:12 ]

Iemand een Tina2 in de aanbieding?


  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 00:11
Kijk eens naar de number_format of sprintf functies.

Edit
Ik ben te traag :z

[ Voor 21% gewijzigd door om3ega op 27-09-2006 17:13 . Reden: Te traag .... ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

number_format niet in de manual kunnen vinden?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Jochemmol schreef op woensdag 27 september 2006 @ 17:07:
dan die ik 10 + 0.6 = 10.6
Logies maar ik wil eigenlijk 10.60 eruit krijgen

Maar ik krijg het niet voor elkaar 8)7 Ik heb round geprobeerd
code:
1
round($zes_procent ,2)

Maar hij rond dan af op 2 decimalen maar zet er geen decimale bij.
Logisch, door het afronden krijg je een ander getal. Dat getal is ook daadwerkelijk een getal, en dus niet de tekstuele representatie zoals jij 'm op je scherm wilt hebben. 1.60 is immers hetzelfde als 1.6 en 1.600 en 0001.600000, dus die worden allemaal op dezelfde manier opgeslagen. Bij het omzetten van een getal naar een string, zodat je 'm af kunt drukken, zul je dus ook aan moeten geven dat je een string wilt met 2 decimalen. Met sprintf of number_format bijvoorbeeld, zoals al is gezegd.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Kortom, haal de waarde en de presentatie ervan niet door elkaar ;)

Ja, wat .oisin zegt dus :w

[ Voor 18% gewijzigd door kenneth op 27-09-2006 17:15 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • D4V3
  • Registratie: Augustus 2003
  • Laatst online: 19-03-2021
om het maar even voor te kouwen:
sprintf("%.2f", $getal);

op-voorraad.nl - Realtime voorraad updates voor de Playstation 5!


Verwijderd

Meteen maar money_format gebruiken dan, aangezien het toch om valuta gaat.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Valuta hoor je sowieso niet op te slaan met drijvendekommagetallen.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
number_format is je vriend, en in plaats van
code:
1
2
    $procent = $totaal_kostencode/100;
    $zes_procent = $procent * 6;

kun je ook doen;
PHP:
1
$zes_procent = $totaal_kostencode * 1.06;

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
oke harstikke bedankt voor jullie reacties _/-\o_

Ik ga het proberen. Maar het moet lukken. Bedankt :9

Jochemmol


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

frickY schreef op woensdag 27 september 2006 @ 18:25:
number_format is je vriend, en in plaats van
code:
1
2
    $procent = $totaal_kostencode/100;
    $zes_procent = $procent * 6;

kun je ook doen;
PHP:
1
$zes_procent = $totaal_kostencode * 1.06;
Nee. Probeer maar.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hij wil uiteindelijk wel het totaal, dat stond alleen niet in het stukje code.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

PHP:
1
$totaal
ipv
PHP:
1
$zes_procent
dus ;)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.

Pagina: 1