Re: integer instead of 'double precision'?
От | Guillaume Lelarge |
---|---|
Тема | Re: integer instead of 'double precision'? |
Дата | |
Msg-id | 1315580999.2456.3.camel@localhost.localdomain обсуждение исходный текст |
Ответ на | integer instead of 'double precision'? (Henry Drexler <alonup8tb@gmail.com>) |
Ответы |
Re: integer instead of 'double precision'?
|
Список | pgsql-general |
On Fri, 2011-09-09 at 10:42 -0400, Henry Drexler wrote: > take any table and run > > Query > --------------------- > select > 1/3 > from > storage > limit 1 > > > Result > --------------------- > ?column? > integer > 0 > > > Expected Result > --------------------- > ?column? > double precision > 0.33333... > > > > Question > --------------------- > Since there is no column type to begin with as this is a made-up column, > shouldn't postgres know it is double precision due to the remainder? > You divide an integer with an integer, that should give you an integer. And that's exactly what it does. > I thought perhaps I could cast it as double precision as noted on > http://www.postgresql.org/docs/8.3/interactive/sql-expressions.html > > though doing the following: > > select > float8(1/3) > from > storage > limit 1 > > results in: > > float8 > double precision > 0 > You still divide an integer with an integer. 1/3 as integers has a result of 0. You then cast it to float which gives you the value 0 in double precision. > any ideas on how to get this type of a manufactured column (not sure the > right term for it) to show the double precision result? Sure, do select 1./3 from... or select float8(1)/3... -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com
В списке pgsql-general по дате отправления: