2014-05-09 19 views
5

Ich versuche, einen Double-Wert aus einer Cassandra-Tabelle mit einer doppelten Spalte zu erhalten. Ich habe die Tabelle in CQL3 Syntax erstellt:Astyanax Cassandra Doppeltyp Präzision

CREATE TABLE data_double (
    datetime timestamp, 
    value double, 
    primary key (datetime) 
    ); 

ich eine Zeile eingefügt haben:

INSERT INTO data_double (datetime, value) VALUES ('111111111', 123.456); 

Wenn ich tun:

SELECT * from data_double; 

ich, dass der Wert 123,46

Warum ist der Wert gerundet?

Dank

Antwort

7

Das cqlsh Dienstprogramm wird standardmäßig nur Anzeige 5 Ziffern Präzision für Gleitkommazahlen.

Sie können diese erhöhen, indem eine cqlshrc Datei mit Inhalt wie folgt zu erstellen:

[ui] 
float_precision = 10 

Die cqlsh docs page bietet weitere Informationen zu den verfügbaren Optionen.

Aktualisierung: Der Speicherort der Cqlshrc-Datei geändert an einem bestimmten Punkt in Cassandra. Der neue Standardspeicherort ist ~/.cassandra/cqlshrc. Sie können eine Datei auch an einem anderen Speicherort mit der Befehlszeilenoption --cqlshrc verwenden.

+0

Sind Sie sicher seine '. cqlshrc '? datastax verweist darauf als 'cqlshrc' hier https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshUsingCqlshrc.html?hl=cqlshrc – simo

+0

@simo Danke, dass du das herausgibst; Der Standort hat sich irgendwo auf dem Weg geändert, daher habe ich meine Antwort klarer formuliert. – BrianC

+0

Sie sind willkommen :) – simo