2010-06-08 124 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是位于右侧的数字位数小数点。