python - Losing float precision in for loop -


this question has answer here:

i have list of floats taken sqlite3 db. want find first 2 numbers greater number, 18 in case, , enumerate position in db.

the db list:

pr = [(20.49999999999983,), (16.29999999999967,), (13.799999999999102,), (18.600000000000705,), (9.600000000000364,), (11.599999999999966,), (25.30000000000001,)...] 

hence try following:

fnd =([i[0] in pr if i[0] > 18]) >>> [20.49999999999983, 18.600000000000705, 25.30000000000001]  j in fnd:     print ([i i,k in enumerate(pr) if k == j]) 

for 3 empty lists. assuming problem comes fact float being rounded when use loop.

for j in fnd:     print j  >>>20.5, 18.6, 25.3 

can offer workaround?

k takes values of elements of pr, 1-tuples containing numbers.

j takes values of elements of fnd, constructed list of numbers greater 18.

when compare k j, compare tuple number. never equal.


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -