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.
中生成精确的十进制值
我在 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.
中生成精确的十进制值