Thread: BUG #15434: NUMERIC without any precision or scale truncates scale to16 digits
BUG #15434: NUMERIC without any precision or scale truncates scale to16 digits
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 15434 Logged by: Andrey L Email address: parihaaraka@gmail.com PostgreSQL version: 10.5 Operating system: Ubuntu 16.04 Description: # select 1800000000000000001::numeric / (10^18)::numeric truncated, -- truncates to 16 digits after decimal point 1800000000000000001::numeric(48,18) / (10^18)::numeric correct, 1800000000000000001::numeric / (10^18)::numeric * (10^18)::numeric to_be_sure; truncated | correct | to_be_sure --------------------+----------------------+-------------------------------------- 1.8000000000000000 | 1.800000000000000001 | 1800000000000000000.0000000000000000 (1 row)
Re: BUG #15434: NUMERIC without any precision or scale truncates scale to 16 digits
From
Andrew Gierth
Date:
>>>>> "PG" == PG Bug reporting form <noreply@postgresql.org> writes: PG> 1800000000000000001::numeric / (10^18)::numeric truncated, -- PG> truncates to 16 digits after decimal point It has to truncate it _somewhere_, because otherwise 1::numeric / 3 would be infinitely long... The choice that numeric division actually makes is to produce a result with at least 16 significant figures, but also with at least as many decimal places as the display scale of either of the inputs. -- Andrew (irc:RhodiumToad)
Re: BUG #15434: NUMERIC without any precision or scale truncatesscale to 16 digits
From
Andrey
Date:
вт, 16 окт. 2018 г. в 14:30, Andrew Gierth <andrew@tao11.riddles.org.uk>:
>>>>> "PG" == PG Bug reporting form <noreply@postgresql.org> writes:
PG> 1800000000000000001::numeric / (10^18)::numeric truncated, --
PG> truncates to 16 digits after decimal point
It has to truncate it _somewhere_, because otherwise 1::numeric / 3
would be infinitely long...
The choice that numeric division actually makes is to produce a result
with at least 16 significant figures, but also with at least as many
decimal places as the display scale of either of the inputs.
--
Andrew (irc:RhodiumToad)
It looks like precision does matters.
man: "...up to the implementation limit on precision".
Why we don't want to decrease scale, but we decrease precision without any problems?
Regards,
Andrey L
Andrey L