Avatar billede clausga Nybegynder
13. juli 2006 - 21:01 Der er 20 kommentarer og
1 løsning

afrunde tal funktion

findes der en fuktion der gør at hvis man skriver 1.3 eller 1,3 så bliver det afrundet ? til 1 ? eller hvis det var 2.7 eller 2,7 så blev det til 3

og lige et tillægsspørgsmål:

hvis man har et felt i en database som hedder int(20) hvad er det højeste tal det kan indeholde ?
Avatar billede nielle Nybegynder
13. juli 2006 - 21:03 #1
Ad 1) Funktionen round():

http://dk.php.net/round
Avatar billede nielle Nybegynder
13. juli 2006 - 21:05 #2
Avatar billede clausga Nybegynder
13. juli 2006 - 21:07 #3
Ja den virker fint hvis det er med . men ikke med , ?

echo round(3.6);
Avatar billede clausga Nybegynder
13. juli 2006 - 21:13 #4
kan man gøre noget for at den kan klare et højre tal end det ?
Avatar billede nielle Nybegynder
13. juli 2006 - 21:14 #5
Tal i PHP er med decimal-punktum. Hvis  der derfor er et "," i tallet so er det faktisk slet ikke et tal set fra PHP, men derimod en lille stump tekst. For at du kan regne med det som tal, så er du derfor nødt til at erstatte , med . i den slags.

Dette kan gøres med str_replace:

$etTalPaaDanskFormat = "123,45";
$sammeTalIPHPFormat = str_replace(",", ".", $etTalPaaDanskFormat);

http://dk.php.net/str_replace
Avatar billede nielle Nybegynder
13. juli 2006 - 21:17 #6
13/07-2006 21:13:09> Fra sanne side som jeg likkede til før:

BIGINT[(M)] : -9223372036854775808 to 9223372036854775807 (heltal!)
FLOAT[(M,D)] : -3.402823466E+38 to -1.175494351E-38 (kommatal)
DOUBLE[(M,D)] : -1.7976931348623157E+308 to -2.2250738585072014E-308 (kommatal)
Avatar billede nielle Nybegynder
13. juli 2006 - 21:18 #7
"Fra samme side som jeg linkede til før"
Avatar billede clausga Nybegynder
13. juli 2006 - 21:24 #8
BIGINT[(M)] <- ser ud til at være løsningen, men hvis man så har et big int felt og man så siger til mysql den skal kopiere det over i en anden tabel som har int(20) så bliver tallet vel konverteret ned til MAX i int ?????

nogle ulemper ved at bruge BIG INT frem for INT ??
Avatar billede nielle Nybegynder
13. juli 2006 - 21:27 #9
Du får nok snare en fejl hvis tallet er for stort.

BIGINT fylder dobbelt så meget som INT i din database. Det er vel det eneste.
Avatar billede clausga Nybegynder
13. juli 2006 - 21:30 #10
hmm ok ;) så lige en sidste ting mht. det med tal kan man ikke lave noget med

if($tal = indeholder bogstaver){ gør noget } else { gør noget andet }
Avatar billede nielle Nybegynder
13. juli 2006 - 21:31 #11
Hvad meder du med at $tal kan indeholde bogstaver - er det ikke et tal?
Avatar billede clausga Nybegynder
13. juli 2006 - 21:33 #12
jo men hvis nu at brugeren i form-feltet skriver et bogstav i feltet i stedet for et tal så får jeg jo en fejl
Avatar billede nielle Nybegynder
13. juli 2006 - 21:34 #13
Ok, men så burde tjekket vel snare være:

if($tal ikke er et tal){ gør noget } else { gør noget andet }
Avatar billede clausga Nybegynder
13. juli 2006 - 21:35 #14
ja men hvordan er det lige jeg får den til at tjekke om det er et tal ;) ?
Avatar billede nielle Nybegynder
13. juli 2006 - 21:35 #15
Er kommatal tilladt? Eller er det kun hele tal? Og kan det i øvrigt være negative tal?
Avatar billede clausga Nybegynder
13. juli 2006 - 21:37 #16
det ville være fint hvis den kun accepteret hel-tal og komma tal MEN bogstaver og negative tal for forbudt :)
Avatar billede nielle Nybegynder
13. juli 2006 - 21:39 #17
Sådan:

$tal = $_POST["tal"];

if (!preg_match("/^[1-9]\d*([.,]\d+)?$/", $tal)) { gør noget } else { gør noget andet }
Avatar billede clausga Nybegynder
13. juli 2006 - 21:43 #18
alt virker perfekt smid svar :)
Avatar billede nielle Nybegynder
13. juli 2006 - 21:45 #19
Ikke helt perfekt. Denne er bedre:

if (!preg_match("/^(0|[1-9]\d*)([.,]\d+)?$/", $tal)) { gør noget } else { gør noget andet }



Og et svar :^)
Avatar billede clausga Nybegynder
13. juli 2006 - 21:46 #20
ok hvad hvis den kun skal acceptere HEL-TAL ? ;)
Avatar billede nielle Nybegynder
13. juli 2006 - 21:50 #21
if (!preg_match("/^(0|[1-9]\d*)$/", $tal)) { gør noget } else { gør noget andet }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester