Thread: BUG #16755: A specification or a bug? Digit drop on CAST from DOUBLE PRECISION to NUMERIC.
BUG #16755: A specification or a bug? Digit drop on CAST from DOUBLE PRECISION to NUMERIC.
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 16755 Logged by: Kobayashi Hisanori Email address: hisanori.kobayashi.bp@nttdata.com PostgreSQL version: 12.4 Operating system: Windows 10 Description: Is this a specification? Or is it a bug? In PostgreSQL 12.4 for Windows. It would be understandable if the CAST from NUMERIC to DOUBLE PRECISION would digit drop, but I don't know if it's a specification or a bug to digit drop on CAST from DOUBLE PRECISION to NUMERIC. (translated by DeepL) ----- postgres=> select (123456789012345::double precision * 11) ; ?column? ------------------ 1.358024679135795e+15 <-- *** No Problem(No digit drop) postgres=> select (123456789012345::double precision * 11)::numeric ; numeric ------------------ 1358024679135800 <-- *** Digit drop -----
Re: BUG #16755: A specification or a bug? Digit drop on CAST from DOUBLE PRECISION to NUMERIC.
From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes: > It would be understandable if the CAST from NUMERIC to DOUBLE PRECISION > would digit drop, but I don't know if it's a specification or a bug to digit > drop on CAST from DOUBLE PRECISION to NUMERIC. (translated by DeepL) float8_numeric() only converts DBL_DIG decimal digits. We have had discussions in the past about changing that, but so far the answer has been "no". You have to remember that digits beyond DBL_DIG are unreliable ... so sometimes this would make things better, but other times it would make things worse. If you want something that behaves like the textual display of float8, you can always do float8value::text::numeric. regards, tom lane