sql >> Databáze >  >> RDS >> PostgreSQL

Jak převést postgres dvojitou přesnost na numerickou bez ztráty/zkrácení dat

Jeden způsob, jak to možná udělat:

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. libpqxx v12 - dynamicky váže vektorové hodnoty k připravenému příkazu (alternativa k vyvolání)

  2. Potenciální pády při změně znakové sady v MySQL?

  3. java.net.SocketException:Přerušené potrubí

  4. Jak získat nejčastější hodnotu SQL