Как сохранить 6-значную точность двойного / плавающего / десятичного числа в Кассандре? - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь сохранить некоторые строки данных в таблице cassandra.Я попытался с помощью столбцов таблицы cassandra определить как float / double / decimal.

Но каждый тип хранит только 2 точности, то есть 8.00005 хранится как 8.00 69.345 как 69.34, что не так с таблицей cassandra?Почему он не содержит все прецизионные цифры.Как решить эту проблему?Сообщите мне, если потребуется, дополнительную информацию о проблеме.

1 Ответ

0 голосов
/ 27 декабря 2018

Эта проблема, похоже, связана с настройками точности для cqlsh.Кассандра правильно хранит значения, но когда вы запрашиваете ее через cqlsh, настройки точных точек округляют ее.

Подробнее о параметрах cqlshrc о точках точности читайте: cqlshrc

Ниже приведены настройки cqlshrc по умолчанию:

;; The number of digits displayed after the decimal point for single and double 
precision numbers
;; (note that increasing this to large numbers can result in unusual values)
;float_precision = 5

Проверьте следующий пример:

create table temp(id int , "val" float ,PRIMARY KEY (id));

insert into temp(id,val) values(1,1.234567);

Выберите перед настройкой float_precision:

select * from temp;

 id | val
----+---------
 1 | 1.23457

Выберите после установки значения float_precision 6:

select * from temp;

 id | val
----+----------
 1 | 1.234567
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...