Astyanax Cassandra Двойная точность

Я пытаюсь получить значение Double из таблицы Cassandra со столбцом двойного типа. Я создал таблицу в синтаксисе CQL3:

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

Я вставил строку:

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

Когда я делаю:

SELECT * from data_double;

Я понимаю, что значение равно 123,46.

Почему значение округлено?

Спасибо


person Guy Wald    schedule 09.05.2014    source источник


Ответы (1)


Утилита cqlsh по умолчанию отображает только 5 цифр точности для чисел с плавающей запятой.

Вы можете увеличить это, создав файл cqlshrc со следующим содержимым:

[ui]
float_precision = 10

Подробнее о доступных опции.

Обновление. В какой-то момент в Cassandra изменилось расположение файла cqlshrc. Новое расположение по умолчанию — ~/.cassandra/cqlshrc. Вы также можете использовать файл в другом месте с параметром командной строки --cqlshrc.

person BrianC    schedule 14.05.2014
comment
Вы уверены, что это . cqlshrc ? datastax ссылается на него как cqlshrc здесь docs.datastax .com/en/cql/3.3/cql/cql_reference/ - person simo; 23.02.2017
comment
@simo спасибо, что указали на это; место действительно изменилось где-то по пути, поэтому я отредактировал свой ответ, чтобы он был более ясным. - person BrianC; 24.02.2017
comment
так что нет способа сделать это в операторе select? - person AFischbein; 21.03.2017
comment
@AFischbein нет; файл cqlshrc - единственный известный мне способ. Имейте в виду, что это просто поведение оболочки cqlsh; когда вы запускаете свое собственное приложение, драйвер вернет полную точность всех плавающих значений. - person BrianC; 21.03.2017