Beste,

Ik heb een heel vervelend probleem dat ik met grote getallen werk.

Wanneer ik bijvoorbeeld dit heb:
$waarde = floor(130000000*0.9);

dan heb ik als $waarde: 1.17E+8
en het probleem is dat er nog mee moet verder gerekend worden, dus ik zou graag een getal zien als 117000000

Het probleem is ontstaan sinds de php versie op de server is geupdate naar PHP5, kan je op een of andere simpele manier een decimale waarde terug krijgen in plaats van een wetenschappelijke.?

Alvast bedankt,
Wannes.
<?php
$waarde = floor(130000000*0.9);
printf('%u', $waarde);
?>
En tada: 117000000
ja oke;. hij moet die niet weergeven, maar ik moet er verder mee kunnen werken.. kan dat ook op een of andere manier?

alvast bedankt.
Je kunt er voor zover ik weet gewoon verder mee rekenen hoor.
Met $waarde kan je gewoon verder rekenen. Deze bevat een float, een nummer dat vrij nauwkeurig is. printf zet die float om in een string - een tekst - en print hem vervolgens. Normaal wordt er dan automatisch voor de wetenschappelijke notatie gekozen door PHP, maar doordat ik aangeef met '%u' dat ik hem gewoon simpel wil hebben.

Je kan ook [php]sprintf[/php] gebruiken. Deze geeft je string terug in plaats dat hij hem print. Echter, als je met die waarde gaat verder rekenen ben je de precisie die de float in $waarde bevat kwijt. Dat kan ik dus niet aanraden.

Oftewel: gewoon rekenen met $waarde, en printen met printf('%u', $waarde) in plaats van echo $waarde.
Je kan dan toch gewoon verder rekenen met $waarde.
Ja oke dat is waar.. ik kan wel verder werken

maar ik vind het niet zo fijn dat ik overal dan printf moet gaan zetten, ook voor dingen die ik in de toekomst maak.., ik bedoel maar kan het niet met ini_set iets instellen dat ik geen wetenschappelijke notatie moet hebben...?
Probeer anders de BCMath functies.
GaMer13 schreef op 05.10.2007 20:13
Probeer anders de BCMath functies.


BCMath is wel beter, maar ik krijg nog toch op een of andere manier dat getal e weer te zien, komt denk ik omdat ik nog van de functie floor gebruik maak

$waarde = floor(bcmul(130000000, 0.9, 2));
wannes schreef op 05.10.2007 20:23
[quote='GaMer13 schreef op 05.10.2007 20:13']Probeer anders de BCMath functies.


BCMath is wel beter, maar ik krijg nog toch op een of andere manier dat getal e weer te zien, komt denk ik omdat ik nog van de functie floor gebruik maak

$waarde = floor(bcmul(130000000, 0.9, 2));[/quote]
Klik
ja oke juist, maarja er komen ook andere getallen dan die 130000000, oke ja ik kan de laatste waarde weglaten en dan komt het altijd wel in orde..

ik ga het dan ook zo maar doen, bedankt, maarja moest er toch nog iemand weten hoe je dat kan uitschakelen dat hij automatisch naar wetenschappelijke waarde gaat omzetten, dan mag die dat wel posten, of een andere suggestie natuurlijk ook ;)

Reageren