Python Cassandra浮动精度损失

Python Cassandra floating precision loss

我在 Python 和 Cassandra 之间来回发送数据。我在 python 程序中使用内置 float 类型,在我的 Cassandra table 中使用数据类型。如果我从 python 发送一个数字 955.99 到 Cassandra,它在数据库中显示 955.989999。当我在 python 中向 return 发送查询时,我刚刚发送的值现在是 955.989990234375.

我了解 python 中的精度损失问题,我只是想知道 Cassandra 中是否有任何内置机制可以防止此问题。

Python float 是 64 位 IEEE-754 double 精度二进制浮点数。在 Cassandra 中使用 double 作为匹配类型。

此外,如果由于某种原因您无法更改列定义,将浮点值转换为字符串并将 str 传递给 cassandra-driver 也可以解决您的问题。

它将能够从 str.

中生成精确的十进制值