1

我正在向Python和Cassandra发送数据。我在我的python程序中使用内建的float类型,以及我的Cassandra表的数据类型。如果我发送一个955.99从python到Cassandra,在数据库中显示955.989999。当我在python中发送一个查询来返回刚才发送的值时,现在是955.989990234375Python Cassandra浮动精度损失

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

回答

4

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

+0

虽然这对某些值有效,但有些像'8.83'变成了'null',尽管它具有与其他值相同的类型,但是为什么会出现这种情况呢? – user2361174

+0

啊,这不是价值本身,而是一个问题。我使用DROP去除浮动列并使用ADD来放回它们。我没有命名为其他字段的列中有空值。 – user2361174

+0

请记住像float或double这样的浮点值总会遇到精度问题。 – Mandraenke