How can I accurately infer the output of a SELECT statement FROM a table with floating-point data type?

From: 毛毛 <krave(at)163(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: How can I accurately infer the output of a SELECT statement FROM a table with floating-point data type?
Date: 2023-10-19 03:45:54
Message-ID: 10b02a08.28b4.18b460a2f09.Coremail.krave@163.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Do we have a rule by follow which one can accurately info the output of a SELECT statment FROM a table with floating-point data type?

I am working with PostgreSQL 16 and pgAdmin 7.6.

Here is my SQL script:

```

CREATE TABLE TEST (REAL_COLUMN real);

INSERT INTO TEST
VALUES (12345.123456789);

SELECT * FROM TEST;
```

I consulted the following doc and found that the range of real type is 6 decimal digits precision.
https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-NUMERIC

So I thought the output of the SELECT statement should be like: 12345.1 with 6 digits in total.
But it turns out to be 12345.123 with 8 digits in total.

May I know why would this happen?
Do we have a rule I can use to infer the correct output of a floating-point number without running the script?

Thank you for your time and have a great day!

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2023-10-19 04:12:51 Re: How can I accurately infer the output of a SELECT statement FROM a table with floating-point data type?
Previous Message Abelardo Erazo Lopez 2023-10-18 18:45:30 Driver Postgresql HP-Unix