2010-06-08 122 views
2

我無法從PostgreSQL中檢索浮點/實數值。從PostgreSQL獲取浮點值

例如,我想存儲:123456789123456,檢索與select語句完全相同的數字。插入到tbl(num)值('123456789123456');插入tbl(num)值('123456789123456');插入tbl(num)值('123456789123456');

因爲它是現在,如果我「選擇TBL民」的結果是「1.23457e + 14」 如果我運行「選擇CAST(NUM爲數字)從TBL NUM」的結果是1234570億 如果我運行「select CAST(num AS float)as num from tbl」結果是123456788103168(這個數字是從哪裏來的)

我怎樣才能選擇值並得到「123456789123456」作爲結果?

在此先感謝

+0

你只會用「真實」或單精度浮點數來獲得大約6.5位數的精度。 – Thanatos 2010-06-08 00:25:44

回答

4

這麼多,你具有一種「真正的」,這是一個相當低精度浮點數列聲明的表。

您可能想要使用「double precision」(又名「float」或「float8」)類型來獲得合理的浮點精度。如果您知道需要存儲的數字的大小和精度,最好將列類型聲明爲numeric(PREC,SCALE),而不是 - PREC是要保留的位數總數,SCALE是位於右側的數字位數小數點。