2017-02-17 27 views
1

SQLiteデータベースに長い10進数を格納するために必要です。 12件の兆候 - 整数部、および8 - 小数では、そのような - '123456789012,12345678'(正の数のみ)SQLiteの長い10進数

drop table if exists table1; 

CREATE TABLE table1 (
a INTEGER, 
b DECIMAL(20,8) 
); 

INSERT INTO table1 select 1, 123456789012.12345678; 

select * from table1; 

クエリ結果:

RecNo a      b 
----- - --------------------- 
    1 1 123456789012.12345900 

我々が見ることができるように、それは四捨五入されます小数部の最後の桁をオフにします。丸めを行わずに正確な結果を得るにはどうすればよいですか?

+0

カラムに数値*アフィニティ*を与える以外は、 'DECIMAL(20,8)'はSQLiteのためのものではないことに注意してください。特に '(20,8)'は違いはありません。詳細については、[SQLiteのDataTypes](https://www.sqlite.org/datatype3.html)を参照してください。 –

答えて

1

SQLiteストアnumeric(10進数)データ型up to 8 bytes。しかし、それは小数点を含むあなたの番号を格納するのに十分ではありません。

blobまたはtextを使用して保存できます。

+0

うわー、それは妄想的です。なぜsqliteは15個しか格納できないときに20桁の精度を定義できるのですか?それはVarChar(1000)を定義することができますが、我々は500まで格納するだけです* – dnoeth

+0

これはSQL LITEです。 –

+0

たぶん、名前をSQL FAKEに変更する必要があります:-) – dnoeth