1

私はPythonとCassandraのデータを前後に送信しています。私は私のpythonプログラムと私のCassandraテーブルのデータ型に組み込みのfloat型を使用しています。私が数字955.99をpythonからCassandraに送ると、データベースには955.989999と表示されます。私が送信した値を返すためにPythonでクエリを送信すると、今度は955.989990234375になります。Python Cassandra浮動小数点精度の損失

私はPythonでの精度の低下に関する問題を理解しています。この問題を防ぐことができるカサンドラに組み込まれたメカニズムがあるかどうかを知りたかっただけです。

答えて

4

Python floatは、64ビットIEEE-754 doubleの精度の2進浮動小数点数です。一致するタイプにはCassandraのdoubleを使用してください。

+0

これはいくつかの値に対して機能しますが、 '8.83'のように、他の値と同じ型を持っていても' null 'になってしまいます。 – user2361174

+0

ああ、それは問題だった価値そのものではありませんでした。 floatカラムを削除するために 'DROP'を使い、' ADD'を使ってそれらを戻しました。私が何かに名前を付けなかった列は、それらにヌル値を持っていました。 – user2361174

+0

floatやdoubleのような浮動小数点値は常に精度に問題があることに注意してください。 – Mandraenke

関連する問題