Python Cassandra floating precision loss

734 Views Asked by At

I'm sending data back and forth Python and Cassandra. I'm using both builtin float types in my python program and the data type for my Cassandra table. If I send a number 955.99 from python to Cassandra, in the database it shows 955.989999. When I send a query in python to return the value I just sent, it is now 955.989990234375.

I understand the issue with precision loss in python, I just wanted to know if there's any built-in mechanisms in Cassandra that could prevent this issue.

2

There are 2 best solutions below

4
On BEST ANSWER

Python float is an 64-bit IEEE-754 double precision binary floating point number. Use double in Cassandra for a matching type.

0
On

Also if you cannot change your column definition for some reason, converting your float value to string and passing str to the cassandra-driver will also solve your problem.

It will be able to generate the precise decimal values form str.