Кассандра поплавковая точность - PullRequest
0 голосов
/ 28 декабря 2018

Я создал значение с плавающей точкой из таблицы Кассандры со столбцом типа с плавающей точкой.

CREATE TABLE testing(
id int,
value float,
primary key (id)
);

INSERT INTO testing(id,  value) VALUES (1, 2341.1);  

SELECT * from testing;

Я получаю, что значение равно 2341.1001

Что не так с моими настройками?Спасибо.

Вот моя версия Кассандры.

cassandra@cqlsh> show version
[cqlsh 5.0.1 | Cassandra 3.11.1 | CQL spec 3.4.4 | Native protocol v4]

1 Ответ

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

числа с плавающей запятой и двойники представлены в памяти как близкие приближения к числу, которое вы указали в качестве ввода.Вы можете найти более подробную информацию о внутреннем представлении чисел с плавающей точкой и двойников в спецификации языка Java .

Если вы хотите иметь точные числа, вы можете использовать тип decimal, который отображается в Java BigDecimal type , но он использует больше памяти / дискового пространства.

...