Ich speichere den Preis als Dezimal (8,2) in Mysql und ich muss die Gleichheit mit einem Float in Python vergleichen.Wie vergleicht man eine Python-Float mit einer Mysql-Dezimalstelle in Python?
Angenommen, ich habe 4.28
in der Datenbank und select
gibt price = (Decimal(4.28),)
zurück. Ich konvertiere es in Python-Dezimal von decimal.Decimal(price[0])
, aber decimal.Decimal(price[0]) == 4.28
gibt false zurück.
Gibt es eine Möglichkeit Gleichheit direkt andere zu vergleichen, als die Differenz mit einer kleinen Zahl zu vergleichen, dh decimal.Decimal(price[0]) - decimal.Decimal(4.28) < 0.01
Dank
'Preis [0]' ist bereits dezimal. Warum versuchen Sie, es wieder in Dezimal umzuwandeln, wie 'dezimal.Dezimal (Preis [0])'? Weil 'decimal.Decimal (decimal.Decimal (4.28))' Decimal ('4.28000000000000024868995751603506505489349365234375') in meinem Laptop zurückgegeben hat. – ozgur
@ozgur 'Preis [0]' ist eine Rückgabewert aus der Datenbank (mit mysqldb), die nicht Python ist dezimal, es buchstäblich 'Dezimal (4.28)' – Harrison