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

From: Tomek <tomekphotos(at)gmail(dot)com>
To: 毛毛 <krave(at)163(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: How can I accurately infer the output of a SELECT statement FROM a table with floating-point data type?
Date: 2023-10-19 09:47:21
Message-ID: CACUaW3RVpQdEqNqQnSVdoJhv63gqEUvxLJkkMsBpy1Mg2-KUig@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

May be you think about this ?

SELECT REAL_COLUMN, *to_char(REAL_COLUMN,'9.99999EEEE')
6_significant_numbers_format *FROM TEST;

Regards Tomek

czw., 19 paź 2023 o 05:47 毛毛 <krave(at)163(dot)com> napisał(a):

> 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!
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Wen Yi 2023-10-19 11:36:26 My question about the transaction
Previous Message Sebastien Flaesch 2023-10-19 08:36:50 Build fails on RHEL 8.8 about libxml2 version