Avatar billede hspwid Nybegynder
08. august 2007 - 15:39 Der er 11 kommentarer

test på om det er et hel tal

Hej Eksperter

Her er lige et af de nemme.

Hvordan laver jeg i php en test på om $resultat er et helttal eller et kommatal.

Jeg har $resultat, og hvis det er et helttal skal systemet sig - helttal hvis de er komma i tallet ex. 0,5 skal den sige det er et kommatal . true / false kan også bruges.
Avatar billede jweber Nybegynder
08. august 2007 - 16:28 #1
Ved ikke lige om der findes en funktion til at tjekke dette, men simpel matematik kan altid gøre det.

Du kan jo afrunde $resultat og se om denne værdi er lig med $resultat. Hvis man afrunder et helttal ændre det jo ikke værdi, som hvis man afrunder et kommatal.

Eks:

$afrundet = round($resultat);

if($afrundet == $resultat) {
  echo "resultatet er et helt tal";
} else {
  echo "resultatet er et kommatal";
}
Avatar billede mcardle Nybegynder
08. august 2007 - 16:54 #2
Eftersom kommatal i php er med punktum, kan du bare sige:

<?php

$result = 10;

if(preg_match("/[.]/", $result)){
  echo "Komma tal";
}
else{
  echo "Helt tal";
}

?>

Så finder den ud af om der er punktum i tallet og retunere, om det er helt eller kommatal.
Avatar billede jakobdo Ekspert
08. august 2007 - 17:04 #3
Hvad med: is_int()
Avatar billede mcardle Nybegynder
08. august 2007 - 22:26 #4
is_int() tester kun om det er et tal eller en streng, ikke om der er komma eller ej.
Avatar billede jakobdo Ekspert
09. august 2007 - 07:41 #5
Mcardle: Du har sgu ret! :o(
Jeg fandt så dette forslag længere nede på http://dk2.php.net/is_int

function myIsInt ($x)
{
  return (is_numeric($x) ? intval($x) == $x : false);
}
Avatar billede mcardle Nybegynder
09. august 2007 - 08:19 #6
is_numeric() finder ud af om det er et tal som en streng, altså:

"124" <- Det er en streng
124 <- Det er et nummer.
Avatar billede hspwid Nybegynder
09. august 2007 - 11:31 #7
jweber - din løsning virker fint.

Hvis du sender svar så kan jeg give points - er det ikke sådan ?
Avatar billede hspwid Nybegynder
09. august 2007 - 11:32 #8
Skal lige sige at den med kommaet ikke virker fordi jeg bruger replace på $resultat, men det havde jeg self heller ikke sagt - sorry skal nok være lidt mere præcis næste gang :-)
Avatar billede mcardle Nybegynder
09. august 2007 - 15:15 #9
Her er mit svar... Tak
Avatar billede hspwid Nybegynder
09. august 2007 - 21:07 #10
Det er jwebers der virker som det skal, beklager mcradle
Avatar billede mcardle Nybegynder
10. august 2007 - 00:44 #11
Hehe, havde ikke set 09/08-2007 11:31:13...

Bare i orden.

//mcardle
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