Toon posts:

[mysql] afrondings probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moest een gemiddelde uitrekenen en ik denk nou das makkelijk, we gebruiken gewoon de avg(blaat) in de query en gaan met die banaan. leuk en aardig allemaal maar nu krijg ik zulke getallen 10.000000 :'(

Ik wil graag gewoon 1 getal achter de komma --> 10.0 hoe kan ik dat doen. het liefst in php maar mag ook anders...

kunnen jullie mij helpen?

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 21:49

TheDane

1.618

search at php.net for round()

Verwijderd

Topicstarter
hoe werkt round()?

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 21:49

TheDane

1.618

Op woensdag 16 januari 2002 14:42 schreef Scratch het volgende:
hoe werkt round()?
:O :X

hier staat 't toch :?

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
je kan in de query ook zetten round(avg(blaat), 2)
zie ook dit

  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 31-08 13:14
Iets van ROUND(0,2)

Op www.php.net staat een uitgebreide reference manual. Daar staat het precies in hoe het werkt.

Succes

System specs | X


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Doet iets met Cloud (MS/IBM)


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
D2K lees ook mijn vorige bericht.

Verwijderd

Topicstarter
ik zal nog eens wat vragen aan jullie >:)

thanx dev-null :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 16 januari 2002 14:53 schreef dev-null het volgende:
D2K lees ook mijn vorige bericht.
dacht dat dat ook een php link was
my bad :)

Doet iets met Cloud (MS/IBM)


Verwijderd

Heeft MySQL een bug in de round zitten of moet ik hier uit opmaken dat mijn server verkeerd ingesteld staat ? :
code:
1
2
3
4
Note that the behaviour of ROUND() when the argument is half way between two integers
depends on the C library implementation. Some round to the nearest even number, 
always up, always down, or always toward zero. If you need one kind of rounding, 
you should use a well-defined function like TRUNCATE() or FLOOR() instead.


Ik heb namelijk deze query, waarvan ik het stukje waar het fout gaat laat zien:

code:
1
ROUND(min(de.dealerprice)*pr.procent+sum(cst.cost),2) AS was_excl_btw


Vervolgens komt hier volgens MySQL 122.27 uit, maar ga je dit narekenen dan moet hier 122.28 uitkomen : 95.50 x 1.05 + 22 = 122.275 (afronden op 2 decimalen, dus 122.28)

Als ik vervolgens kijk wat er gebeurd als ik 3 decimalen wil zien. Dan geeft MySQL 122.275 terug.
Waarom rond ie niet af naar boven? (Doe ik er 0.001 erbij optellen dan rond ie wel naar boven af, maar dit is niet de oplossing gezien de BTW en incl BTW)

Hopelijk kunnen jullie me helpen!

Tnxs

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

+0.005 en dan floor... Dat is wat ze eigenlijk ook in dat stukje vertellen.

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


Verwijderd

pfffffff. serieus? wat een work-a-round :(

Verwijderd

Helaas, floor rond af op hele getallen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

* 100 floor /100 klaar :).. Ik hoef toch niet alles voor te kauwen toch?

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


Verwijderd

HAHA ja oke, dat werkt... met spaghetti code kom je ver ;)
Pagina: 1