PhelpsTransposed Skrevet 25. oktober 2013 Del Skrevet 25. oktober 2013 Hei!Har et script som henter et tall fra en database, 907, og sammenligner det med et tall som hentes fra yahoo.finance sitt API, som varierer mellom 900 og 1000. Når dette tallet er over 907 farges bakgrunnen grønt, men om det er under det farges bakgrunnen rød (via echoene). Dette fungerer helt fint til tallet passerer, eller blir 1000.00. Hvorfor i alle dager er det slik?if ($kjopskurs[$quote]>$dagenskurs){echo "error";} else{echo "info";}Det er altså $kjopskurs som er 907, mens $dagenskurs varierer. Lenke til kommentar
PhelpsTransposed Skrevet 25. oktober 2013 Forfatter Del Skrevet 25. oktober 2013 Løst! Det ordnet seg ved å kaste "floatval" på verdien før jeg sammenligner. Kom visst unna før den komm opp i 1000.00, da ble den nok forvirra. (fordi opptil da har tallene høyere binær verdi uansett?) Lenke til kommentar
Thorbear Skrevet 27. oktober 2013 Del Skrevet 27. oktober 2013 Problemet oppstår fordi PHP ikke har noen eksplisitt type på variabler. Ettersom man ofte jobber med tall som kommer fra tekst, enten de er hentet fra brukerinput, en database eller en annen nettside, hender det ofte at disse variablene er lagret som tekst. Når de så skal sammenliknes må PHP prøve å finne ut om tekstene du sammenlikner inneholder noe annet som du kanskje mente å sammenlikne, for det meste fungerer dette uten problemer men hvis tekstene inneholder mer enn bare heltall kan det få uventede resultater. Demo: var_dump('907' > '1000.00 '); // bool(true) var_dump('907' > '1000.00'); // bool(false) 2 Lenke til kommentar
PhelpsTransposed Skrevet 27. oktober 2013 Forfatter Del Skrevet 27. oktober 2013 Takk for svar! Lenke til kommentar
GeirGrusom Skrevet 28. oktober 2013 Del Skrevet 28. oktober 2013 PHP sitt typesystem er ikke veldig godt gjennomtenkt, så pass på å formater data riktig til enhver tid. 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå