MarcusMedlem sedan juli 2000449 inlägg Jag har ett script som genererar fram 3 olika värden. Scriptet loopas ett par hundra ggr.
99.9
100
100.1
Dessa tre matas in i en ENKEL if-sats.
if ($tal == 99.9) {
print "under hundra";
} elseif ($tal == 100.1) {
print "över hundra";
} else {
print "hundra";
}
Jag får inget felmeddelande såklart. Problemet är ju dock att ibland så går 99.9 och 100.1 under else-satsen, ibland inte.
Vad har jag missat? Tack på förhand.
SPiNMedlem sedan mars 20007 896 inlägg Testa att cast:a $decimaltal till double:
if( ( ( double ) $decimaltal ) == 99.9 )
...
UlfTMedlem sedan maj 20018 027 inlägg
Problemet är ju dock att ibland så går 99.9 och 100.1 under else-satsen, ibland inte.
Luddigt uttryckt. Nåja, man ska undvika att göra den där typen av jämförelser med decimaltal. Hur vet du att scriptet alltid genererar exakt 99,9 eller 100,1? Det kanske i själva verket genererade 99,900000001? Det är inte lika med 99,9. Testa hellre om det är större eller mindre än 100, vilket tycks vara vad du är ute efter.
MarcusMedlem sedan juli 2000449 inlägg UlfT:
Visst kan jag det.
Just i detta fallet kan inte talen bli något annat.
Marcus EMedlem sedan maj 20021 466 inlägg Re: Problem med tal
Hur gör du och vad är ändamålet?
Flyttal ska du undvika om du inte behöver använda dem. Vill du slumpa fram talen 99.9, 100 eller 100.1, vill du slumpa fram ett tal mellan 0.0 och 200.0 eller vad är du ute efter?