1

J'envoie des données Python et Cassandra. J'utilise les types float intégrés dans mon programme python et le type de données pour ma table Cassandra. Si j'envoie un numéro 955.99 de python à Cassandra, dans la base de données, il montre 955.989999. Quand j'envoie une requête en python pour retourner la valeur que je viens d'envoyer, elle est maintenant 955.989990234375. Je comprends le problème de la perte de précision en python, je voulais juste savoir s'il y avait des mécanismes intégrés dans Cassandra qui pourraient éviter ce problème.Perte de précision flottante Python Cassandra

Répondre

4

Python float est un nombre à virgule flottante binaire de précision 64 bits IEEE-754 double. Utilisez double dans Cassandra pour un type correspondant.

+0

Alors que cela fonctionne pour certaines des valeurs, certains comme «8.83» se transforment en «null» malgré qu'il ait les mêmes types que les autres valeurs, aucune idée pourquoi cela se produit? – user2361174

+0

Ahh ce n'était pas les valeurs elles-mêmes qui étaient un problème. J'ai utilisé 'DROP' pour enlever les colonnes flottantes et utilisé' ADD' pour les remettre. Les colonnes que je n'ai pas nommées dans quelque chose d'autre avaient les valeurs nulles en eux. – user2361174

+0

Gardez à l'esprit que les valeurs flottantes comme float ou double ont toujours des problèmes de précision. – Mandraenke