15. oktober 2003 - 14:07
Der er
29 kommentarer og 1 løsning
hente sidste ciffer af en double
Jeg har en database hvor et af felterne angiver ID'er som doubles, f.eks. 1.1, 1.2, 1.3 [...] 2.1, 2.2, 2.3 osv. Nu har jeg brug for at hente bare det sidste ciffer, altså hhv 1, 2, 3 [...] 1, 2, 3. Det må kunne lade sig gøre... men hvordan? //mik
Annonceindlæg fra Computerworld it-jobbank
15. oktober 2003 - 14:10
#1
Gange med 10 og modulo 10
15. oktober 2003 - 14:12
#2
du kunne bruge funktionen explode() $ciffer = $row[id]; $ciffer = explode (".", $ciffer); $ciffer = $ciffer[1]; ceho $ciffer;
15. oktober 2003 - 14:13
#3
hov.. den med explode skulle have været et svar :) og ceho skulle have været echo....
exp
Juniormester
15. oktober 2003 - 14:17
#4
hvis der ALTID kun er et ciffer efter punktum kan du bruge: substr($str, -1) men støtter hhunden's forslag...
15. oktober 2003 - 14:39
#5
hhunden> jeg skal ha' lidt hjælp: hvor kommer $row[id] fra? Jeg har testet med flg. som muligvis bare viser at jeg ikke har forstået en snus: <!DOCTYE... <html>osv. <body> <?php function showLast($double) { $ciffer = $row[id]; $ciffer = explode(".",$ciffer); $ciffer = $ciffer[1]; echo $ciffer; } $double = 1.2; echo "double = $double;<br />\n"; echo showLast($double); ?> </body> Denne side skriver bare: "double = 1.2", men viser ikke hvad det sidste ciffer er :-/
15. oktober 2003 - 14:40
#6
hov jeg kan da i hvert fald se én syntaks fejl: funktionen skal bare hedde showLast() hvis jeg gør det på denne måde...
15. oktober 2003 - 14:43
#7
men det ændrede ikke noget....
15. oktober 2003 - 14:49
#8
OK, var din $row der drillede. hvis jeg i stedet skriver:
15. oktober 2003 - 14:50
#9
<?php // function showLast() { $double = 1.2; echo "double = $double<br />\n"; $ciffer = $double; $ciffer = explode(".",$ciffer); $ciffer = $ciffer[1]; echo $ciffer; ?> ---- så virker det
15. oktober 2003 - 14:55
#10
Nu er jeg ikke helt sikker.... Men kan "$resultat = $double % 1" ikke bare bruges? Eller blander jeg det sammen med et andet sprog?
15. oktober 2003 - 14:57
#11
angak> prøver.....
15. oktober 2003 - 15:03
#12
angak> $double = 1.2; $resultat = $double % 1; echo $resultat; skriver bare: "0"
15. oktober 2003 - 15:05
#13
Så prøv: $double = 1.2; $resultat = (($double*10) % 10)/10; echo $resultat; Det kan være Modulo kun kan heltal
15. oktober 2003 - 15:07
#14
$row[id] kommer fra dit database udtræk hvordan indgår det i dit site??
15. oktober 2003 - 15:08
#15
angak> det giver "0.2"
15. oktober 2003 - 15:10
#16
<?php function showLast($double) { echo "double = $double<br />\n"; $double = explode(".",$double); $ciffer = $double[1]; return $ciffer ?> så kalder du bare din funktion f.eks. echo showLast(1.2); dette vil skrive double = 1.2 2
15. oktober 2003 - 15:10
#17
Doh.... Glem det med at dele med 10 til sidst... Jeg havde lige glemt spørgsmålet.... *g*
15. oktober 2003 - 15:11
#18
Efter mange forsøg ender mit svar med at være : $double = 1.2; $resultat = (($double*10) % 10); echo $resultat;
15. oktober 2003 - 15:12
#19
angak hvorfor er du så låst på at bruge Modulo ?
15. oktober 2003 - 15:13
#20
forresten min løsning kunne være lidt pænere $ciffer = (int) $double[1]; for at fjerne alle misforståelser
15. oktober 2003 - 15:14
#21
holybull> dette er stort det samme som jeg nåede frem til 15/10-2003 14:50:16 ("//" er bare en paste-fejl)
15. oktober 2003 - 15:16
#22
mik789 forskellen er at mit virker.. det er testet
15. oktober 2003 - 15:16
#23
og funktionerne return og echo er absolut ikke det samme
15. oktober 2003 - 15:17
#24
holybull> det er min også ;-) eneste forskel er at din har en variabel som parameter, og det skal den selvfølgelig have for at kunne kaldes uafhængigt, men det er jeg klar over.
15. oktober 2003 - 15:18
#25
holybull> næ, men gør det nogen forskel - den skal jo echo'es under alle omstændigheder?
15. oktober 2003 - 15:19
#26
der ligger også andre forskelle, f.eks. anvender jeg return, som giver funktionen en retunerings værdi, og jeg laver en implicit typekonvertering for 110% at undgå misforståelser
15. oktober 2003 - 15:19
#27
så problemet er løst nu, eller... Jeg er blevet lidt forvirret nu :o) Men hvis mik789 har fået løst sit problem er det jo lige meget om jeg har forstået... :o)
15. oktober 2003 - 15:20
#28
jeg HAR fået løst problemet. jeg brugte hhundens model som blev rettet lidt til... men tak til alle
15. oktober 2003 - 15:21
#29
godt så :o) så var det bare mig der var blevet forvirret undervejs !!!
15. oktober 2003 - 15:24
#30
holybull: "angak hvorfor er du så låst på at bruge Modulo?" Fordi det er en nem og simpel operator.. =)
Vi tilbyder markedets bedste kurser inden for webudvikling