[php] round() onder php 4.1.x

Pagina: 1
Acties:

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Topicstarter
zoals ik al bij php.net poste:
the following:
PHP:
1
2
3
4
5
6
7
8
<?
$int = 0.293847289472983; 
echo $int ."\n"; 
echo round($int,2) . "\n"; 
echo round((int)$int,2) . "\n"; 
echo round((float)$int,2) . "\n"; 
echo round((double)$int,2) . "\n"; 
?>

outputs on php 4.0.6:
0.29384728947298
0.29
0
0.29
0.29

however, using php 4.1.0, it outputs:
0.29384728947298299761570206101168878376483917236328125
0.289999999999999980015985556747182272374629974365234375
0
0.289999999999999980015985556747182272374629974365234375
0.289999999999999980015985556747182272374629974365234375

thus, be aware that round() should no longer be used for output. As
previously commented, use [s]printf() for that.

Klaar voor een nieuwe uitdaging.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

mooi bugje..

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:15

Kees

Serveradmin / BOFH / DoC
tja, php4.1.0 is dan ook nog niet uit he :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Topicstarter
Op maandag 10 december 2001 15:32 schreef dusty het volgende:
mooi bugje..
jah nee
het is geen bug... feitelijk had je nooit round() voor ouput moeten gebruiken. zoals duidelijk in de manual staat: round is enkel voor het afronden van getallen voor berekeningen (Returns the rounded value of val to specified precision (number of digits after the decimal point).), en niet voor het weergeven.

Klote blijft het wel, want wij hebben dat dus talloze malen gebruikt: tenzij dit dus als bug gezien wordt (wat het niet letterlijk is), moeten er dus tientallen pagina's nagelopen worden op gebruik van de round() functie...

Klaar voor een nieuwe uitdaging.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Topicstarter
Op maandag 10 december 2001 15:34 schreef Kees het volgende:
tja, php4.1.0 is dan ook nog niet uit he :)
maar toch... ;)

Klaar voor een nieuwe uitdaging.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

maar het afronden op het aantal decimalen achter de punt gaat dus NIET goed, dus is het een bug. ( anders zouden er maar 2 getallen achter de punt mogen staan.. )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Topicstarter
Op maandag 10 december 2001 15:38 schreef dusty het volgende:
maar het afronden op het aantal decimalen achter de punt gaat dus NIET goed, dus is het een bug. ( anders zouden er maar 2 getallen achter de punt mogen staan.. )
hier: http://marc.theaimsgroup.com/?l=php-dev&m=100750316722784&w=2 loopt er nog een discussie over (met name de afrondingen)

Bug heb ik net gepost: http://bugs.php.net/bug.php?id=14402

Klaar voor een nieuwe uitdaging.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

leve de printf family! :)

* drm gebruikt altijd sprintf

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1