Vinzenz Mai: MySQL verlgiehcn von FLOAT Werten

Beitrag lesen

Hallo

ich baue mir eine Query zurecht, komme aber mit den Floatwerten und dem Vergleichen nicht zurecht:

Wie verwendest Du Deine Vergleichsoperatoren in Deinem SQL-Statement?

offer.price <= 0.4

wäre in einer WHERE-Klausel korrekt:

SELECT  
    price  
FROM offer  
WHERE price <= 0.4

Ich möchte gerne alles selecten was < oder = 0.4 ist, leider gottes missachtet MySQL diese Abfrage und ich bekomme einfach kein Resultat geliefert. Die Spalte offer.price ist vom Typ float.

float ist nicht der optimale Datentyp für Preise, da float-Operationen einfachster Art bereits mit Ungenauigkeiten behaftet sind. So ist z.B. 0.1 mit float nicht exakt darstellbar. Nimm doch lieber DECIMAL, siehe Handbuch.

Achjaa, ich nutze PHP und MySQL 4 ;-)

Sowohl PHP 4, als auch MySQL 4 sind sehr ungenaue Angaben. PHP 4.4.2 ist weit leistungsfähiger als PHP 4.0.0. Die Unterschiede zwischen MySQL 4.1 und MySQL 4.0 sind ebenfalls gravierend, allerdings beherrscht MySQL auch in Version 4.0 die Vergleichsoperatoren. Es kann nur an Deiner Verwendung liegen.

Freundliche Grüße

Vinzenz