30. december 2003 - 18:27
Der er
19 kommentarer og 3 løsninger
Runde op
Hej Er der nogen der kender en runde op funktion i php? Altså 187 rundes op til 200 1500000 runder op til 2000000 5 rundes op til 10 1768 rundes op til 2000 osv osv Den må bare - ikke - runde ned! //
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
30. december 2003 - 18:35
#1
Formelen må være: scale = pow(10, intfloor(log10(x))) y = intceil(x/scale) * scale nu skal du bare have en til at oversætte det til PHP !
30. december 2003 - 18:35
#2
ceil($tal)
30. december 2003 - 18:36
#3
30. december 2003 - 18:38
#4
fcknet> Jeg er ret sikker på at ceil(187) returnerer 187 ikke 200 !
30. december 2003 - 18:56
#5
arne_v ->> Tak, vil du ikke prøve at lave et eksempel, hvor tallet er 187 ?
30. december 2003 - 18:56
#6
fcknet -> ceil udskriver bare det samme tal.. :-(
30. december 2003 - 18:59
#7
Desværre programmerer jeg ikke i PHP. jeg er overbevist om at min formel er rigtig. log10(187) er 2.27 intfloor(22.27) er 2 pow(10,2) er 100 187/100 er 1.87 intceil(1.87) er 2 2*100 er 200
30. december 2003 - 18:59
#8
En oversættelse til php (if-sætningen er på da den ellers ikke virker med tal under 10.) <?php $x = 10; if($x < 10) { $scale = pow(10, floor(log10($x))) * 10; } else { $scale = pow(10, floor(log10($x))); } $y = ceil($x/$scale) * $scale; echo $y; ?>
30. december 2003 - 18:59
#9
arne -> må være $tal = 187; $scale = pow(10, floor(log($tal, 10))); $rundet = ceil($tal/$scale) * $scale; echo $rundet; tror jeg... Morten
30. december 2003 - 19:00
#10
ok jeg prøver mig frem ;)
30. december 2003 - 19:02
#11
Morten -> det skal være log10 og ikke log
30. december 2003 - 19:02
#12
ahv> Hvorfor skulle det ikke virke for <10 ?
30. december 2003 - 19:05
#13
Tak Arne, løsningen blev sådan: <?php $x = 187; $scale = pow(10, floor(log10($x))); $y = ceil($x/$scale) * $scale; echo $y; ?> og tak til jer andre, jeg prøver lige ahv's script, og hvis det virker deler jeg mellem arne v og ahv. Er det okay ?
30. december 2003 - 19:08
#14
ahv -> havde ikke se funktionen log10(), derfor jeg benyttede log($tal, 10) (tjek php.net/log, det andet parameter er base for logaritmen... tilføjet i 4.3.0) Morten
30. december 2003 - 19:11
#15
Arne_v eks -> log10(5) er 0.698970004336 intfloor(0.698970004336) er 0 pow(10,0) er 1 5/1 er 5 intceil(5) er 5 5 * 1 er 5
30. december 2003 - 19:11
#16
okay, alle virker faktisk, så smid et svar, dea_pg, og arne_v.
30. december 2003 - 19:13
#17
exp5 -> Dog virker virker de andres ikke for <10
30. december 2003 - 19:15
#18
svaa'r Morten
30. december 2003 - 19:16
#19
ok, vi mangler stadig arne_v's svar ;)
30. december 2003 - 19:16
#20
Aha. Jeg antog at 5 skulle blive til 5. Fordi 5 oprundet til et ciffer er 5. Men du har ret at der står at 5 skal oprunde til 10.
30. december 2003 - 19:16
#21
svar
30. december 2003 - 19:20
#22
Tak for svarene! Håber det er en fair point fordeling
Vi tilbyder markedets bedste kurser inden for webudvikling