Afrunde udregning?

Tags:    php

Jeg spekulere hvordan jeg kan gøre sådan at den ikke går fuldstænding amok nogle gange med denne her udregning?

{ $onlinetid = $r[onlinetid];

$udregning = $onlinetid / 60;
$Timer = floor($udregning);
$minutter = ($udregning - $Timer) * 60;
}

Fordi hvis hvis man har noget der ikke går helt præcis op i får man et tal der hedder xx timer , xx.xxxxx min Og vil kun have 2 decimaler efter komma..



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det jeg mener er at Jeg vil have sådan at det er lige :) Altså fks ligesom 17:54 osv ? :) Så det ikke er 17:54.342354235


Det kunne du jo bare have sagt :P

Men altså floor() som Nørden skriver, runder ned dvs. 18.99 bliver til 18

ceil() runder op

round() afrunder til det nærmest hele tal. med mindre et andet parameter bliver givet, så kan den afrunde så der kommer x antal decimaler.

jeg vil gætte på at dette er hvad du søger:


$onlinetid = $r[onlinetid];

$udregning = $onlinetid / 60;
$Timer = floor($udregning);
$minutter = floor(($udregning - $Timer) * 60);



Hilsen

Martin Dybdal (Dybber)




Kig her på round() funktionen her:
http://dk2.php.net/manual/en/function.round.php

Hilsen

Martin Dybdal (Dybber)



kommer måske lidt an på hvad onlietid er og hvilken slags blok det er i men det burde ikke, garderer mig bare :)

{ $onlinetid = $r[onlinetid];
$Timer = floor($onlinetid / 60);
$minutter = floor($onlinetid-$Timer*60);
}

-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



kommer måske lidt an på hvad onlietid er og hvilken slags blok det er i men det burde ikke, garderer mig bare :),opdaget en fejl som jeg kom til at rette i en ny post :)

{ $onlinetid = $r[onlinetid];
$Timer = floor($onlinetid / 60);
$minutter = round(($onlinetid-$Timer*60)*100)/100;
}

-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/


[Redigeret d. 10/01-05 20:56:50 af Nørden]




{ $onlinetid = $r[onlinetid];
$Timer = floor($onlinetid / 60);
$minutter = floor($onlinetid-$Timer*60);
}


Med floor kan du ikke indstille præcisionen. Han vil gerne have 2 decimaler.

Hilsen

Martin Dybdal (Dybber)




{ $onlinetid = $r[onlinetid];
$Timer = floor($onlinetid / 60);
$minutter = floor($onlinetid-$Timer*60);
}


Med floor kan du ikke indstille præcisionen. Han vil gerne have 2 decimaler.

Hilsen

Martin Dybdal (Dybber)



Det jeg mener er at Jeg vil have sådan at det er lige :) Altså fks ligesom 17:54 osv ? :) Så det ikke er 17:54.342354235



Hvad med at bruge modulus? Hvis ellers jeg har forstået det rigtigt, er det noget i retning af følgende (Jeg går ud fra at onlinetid er i sekunder):
$onlinetid=$r['onlinetid'];
$sekunder=$onlinetid%60;
$minutter=$onlinetid/60%60;
$timer=$onlinetid/3600%24;
--
Thus, I conclude

[Redigeret d. 11/01-05 13:41:12 af XyborX]



Hvad med at bruge modulus? Hvis ellers jeg har forstået det rigtigt, er det noget i retning af følgende (Jeg går ud fra at onlinetid er i sekunder):
$onlinetid=$r['onlinetid'];
$sekunder=$onlinetid%60;
$minutter=$onlinetid/60%60;
$timer=$onlinetid/3600%24;
--
Thus, I conclude

[Redigeret d. 11/01-05 13:41:12 af XyborX]



Hvert minut bliver der smidt 1 Minut ind i online tid.. dvs når den er på 300 er det 5 timer.



t