Thread: BUG #3230: Division problem
The following bug has been logged online: Bug reference: 3230 Logged by: Jeferson Kasper Email address: jefersonkasper@gmail.com PostgreSQL version: 8.1.5 Operating system: Linux RedHat 9 Description: Division problem Details: i was trying to divide a number and the result is always wrong, and i tried to calculate in psql this query: select (30/50); and the result was zero ( 0 ), and it have to be 0.6... i dont know what i have done wrong... but, i think its a bug. thanks for all. Jeferson Kasper
try: select 30/50::float; ?column? ---------- 0.6 (1 row) Ted --- Jeferson Kasper <jefersonkasper@gmail.com> wrote: > > The following bug has been logged online: > > Bug reference: 3230 > Logged by: Jeferson Kasper > Email address: jefersonkasper@gmail.com > PostgreSQL version: 8.1.5 > Operating system: Linux RedHat 9 > Description: Division problem > Details: > > i was trying to divide a number and the result is > always wrong, and i tried > to calculate in psql this query: > > select (30/50); > > and the result was zero ( 0 ), and it have to be > 0.6... > i dont know what i have done wrong... but, i think > its a bug. > thanks for all. > > Jeferson Kasper > > ---------------------------(end of > broadcast)--------------------------- > TIP 6: explain analyze is your friend > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Jeferson Kasper wrote: > The following bug has been logged online: > > Bug reference: 3230 > Logged by: Jeferson Kasper > Email address: jefersonkasper@gmail.com > PostgreSQL version: 8.1.5 > Operating system: Linux RedHat 9 > Description: Division problem > Details: > > i was trying to divide a number and the result is always wrong, and i tried > to calculate in psql this query: > > select (30/50); > > and the result was zero ( 0 ), and it have to be 0.6... > i dont know what i have done wrong... but, i think its a bug. > thanks for all. > > Jeferson Kasper Operations on integer arguments will return an integer result. To get the value you're expecting from that division, you'll need to cast one of the numbers to a floating point type. Any of the following will produce the result you wanted: select cast(30 as real) / 50; select cast(30 as numeric) / 50; select 30::real / 50; select 30 / 50::float; As well as any other variations along that theme. -Jon -- Senior Systems Developer Media Matters for America http://mediamatters.org/