4

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.

4

2 回答 2

6

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

于 2017-07-17T08:31:29.903 回答
1

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.

于 2018-04-27T15:31:24.640 回答