denmarkdev
Member²
The data type Number(28,15) is sometimes unprecise when selected from PL/SQL developer.
-- Create table
create table NUMBERTEST
(
c1 number,
c2 NUMBER(28,15),
c3 NUMBER(28,10)
);
insert into NUMBERTEST select 495.96, 495.96, 495.96 from dual;
select c1, c2, c3
,TO_CHAR(c1,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b1
,TO_CHAR(c2,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b2
,TO_CHAR(c3,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b3
from NUMBERTEST;
Result:
1 495.96 495.960000000000064 495.9600000000 495.96 495.96 495.96
Notice the number 495.960000000000064
-- Create table
create table NUMBERTEST
(
c1 number,
c2 NUMBER(28,15),
c3 NUMBER(28,10)
);
insert into NUMBERTEST select 495.96, 495.96, 495.96 from dual;
select c1, c2, c3
,TO_CHAR(c1,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b1
,TO_CHAR(c2,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b2
,TO_CHAR(c3,'FM99999999999999999999D99999999999999999999', 'NLS_NUMERIC_CHARACTERS = ''.,''') b3
from NUMBERTEST;
Result:
1 495.96 495.960000000000064 495.9600000000 495.96 495.96 495.96
Notice the number 495.960000000000064