2014-05-09 14 views
5

Tôi đang cố gắng để có được một giá trị gấp đôi từ một bảng Cassandra với một cột loại đôi. Tôi đã tạo các bảng trong CQL3 cú pháp:Astyanax Cassandra Hai loại chính xác

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

Tôi đã chèn một hàng:

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

Khi tôi làm:

SELECT * from data_double; 

tôi nhận được rằng giá trị là 123,46

Tại sao giá trị được làm tròn?

Cảm ơn

Trả lời

7

Tiện ích cqlsh theo mặc định sẽ chỉ hiển thị 5 chữ số chính xác cho số dấu phẩy động.

Bạn có thể tăng này bằng cách tạo một file cqlshrc với nội dung như sau:

[ui] 
float_precision = 10 

Các cqlsh docs page cung cấp thêm chi tiết về các tùy chọn có sẵn.

Cập nhật: Vị trí tệp cqlshrc đã thay đổi tại một số điểm trong Cassandra. Vị trí mặc định mới là ~/.cassandra/cqlshrc. Bạn cũng có thể sử dụng một tệp ở một vị trí khác với tùy chọn dòng lệnh --cqlshrc.

+0

Bạn có chắc chắn '. cqlshrc '? datastax gọi nó là 'cqlshrc' ở đây https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshUsingCqlshrc.html?hl=cqlshrc – simo

+0

@simo cảm ơn vì đã chỉ ra điều đó; vị trí đã thay đổi ở đâu đó trên đường đi, vì vậy tôi đã chỉnh sửa câu trả lời của mình để rõ ràng hơn. – BrianC

+0

bạn được chào đón :) – simo

Các vấn đề liên quan