sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man konverterar postgres dubbel precision till numerisk utan dataförlust/trunkering

Ett sätt att möjligen göra detta:

show extra_float_digits ;
 extra_float_digits 
--------------------
 3

create table float_numeric(number_fld float8);
insert into float_numeric values (21.291400909423828), (23.291400909422436);
select * from float_numeric ;
     number_fld     
--------------------
 21.291400909423828
 23.291400909422435

alter table float_numeric alter COLUMN number_fld type numeric using number_fld::text::numeric;

\d float_numeric 
             Table "public.float_numeric"
   Column   |  Type   | Collation | Nullable | Default 
------------+---------+-----------+----------+---------
 number_fld | numeric |           |          | 

select * from float_numeric ;
     number_fld     
--------------------
 21.291400909423828
 23.291400909422435



  1. Hur beräknar man antalet hopp mellan källan och destinationen?

  2. Det går inte att få flera tabellenheter via lagrad procedur med viloläge

  3. MySQL Ändra samling av alla tabeller

  4. Hur väljer jag bara en del av en enorm binär (fil)?