oracle精度怎么查 oracle date 精度

关于oracle 的精度问题

这个是双精度数据的存储问题,既然是double,数据必然存在这样的问题。

专注于为中小企业提供网站设计制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业光山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

所以,你可以在需要显示的时候,进行格式化,

c里面 的格式 好像是 ".2f%",proc应该也有对应的功能,你找一下。

利用oci如何获取oracle数据中number(10,5)类型的数据

NUMERIC(p,s):完全映射至NUMBER(p,s)。如果p未指定,则默认为38.

DECIMAL(p,s)或DEC(p,s):完全映射至NUMBER(p,s)。如果p为指定,则默认为38.

INTEGER或INT:完全映射至NUMBER(38)类型。

SMALLINT:完全映射至NUMBER(38)类型。

FLOAT(b):映射至NUMBER类型。

DOUBLE PRECISION:映射至NUMBER类型。

REAL:映射至NUMBER类型。

以上这些类型只是oracle在语法上支持的,在底层实际上还是number

1.表示的数值范围

NUMBER:Oracle NUMBER类型能以极大的精度存储数值,具体来讲,精度可达38位。其底层数据格式类似一种

“封包小数“表示。Oracle NUMBER类型是一种变长格式,长度为0~22字节。它可以存储小到10e-130、

大到(但不包括)10e126的任何数值。这是目前最为常用的数值类型。也是Oracle9i Release 2及以

前的版本只支持的唯一一种适合存储数值数据的固有数据类型,其他一起兼容类型只是一种和number

之间的映射,在底层实际上都是number

BINARY_FLOAT:这是一种IEEE固有的单精度浮点数。它在磁盘上会占用5字节的存储空间:其中4个固定字节用

于存储浮点数,另外还有一个长度字节。BINARY_FLOAT能存储有6为精度、范围在~±1038.53

的数值

BINARY_DOUBLE:这是一种IEEE固有的双精度浮点数。它在磁盘上会占用9字节的存储空间:其中8个固定字节用

于存储浮点数,还有一个长度字节。BINARY_DOUBLE能存储有12.位精度、范围在~±10308.25的

数值。

取值范举例:

创建测试表t2

SQL create table t2

2 ( num_type number,

3 float_type binary_float,

4 double_type binary_double

5 );

Table created

插入测试数据1

SQL

SQL insert into t2

2 (num_type, float_type, double_type)

3 values

4 (1234567890.0987654321, 1234567890.0987654321, 1234567890.0987654321);

1 row inserted

查看测试数据1

SQL

SQL select to_char(num_type),

2 to_char(float_type, '999999999999.999999999'),

3 to_char(double_type, '99999999999.9999999999')

4 from t2

5 ;

TO_CHAR(NUM_TYPE) TO_CHAR(FLOAT_TYPE,'9999999999 TO_CHAR(DOUBLE_TYPE,'999999999

--------------------------- -----------------------------------------------------------------------------------

1234567890.0987654321 1234567940.000000000 1234567890.0987654000

oracle精度会自动截取吗

oracle精度会自动截取。根据查询相关资料信息显示,ROUND按照指定的精度进行四舍五入,oracle中对查询出来的数据进行自动切割、截取等操作。Oracle中的取精度函数常用的有ROUND函数、TRUNC函数、FLOOR函数和CEIL函数。

oracle 数值精度查询问题

假设列名为culm

select * from tableA

where length ( trunc ( to_char(culm) , instr(to_char(culm),'.') ) )=6;

instr(to_char(culm),'.') 这个表示小数点的点号在数值的位置,从这之后截取,然后计算长度,限定为6就可以了

oracle中查询结果中有小数点

你这个问题很好解决,你这个就是因为数值太大了,数据库就采用科学计数法了。

比如你查询上图结果的Select语句是:

SELECT * FROM table;只要在查询前执行:

col item format 999999999999999999999999999;之后再执行查询语句,应该数值就是你想要的数值了。(PS:999999999999999999999999999这个数值可以根据你列的长度来设置)

希望可以帮助你,望采纳!!


网页名称:oracle精度怎么查 oracle date 精度
网页网址:http://myzitong.com/article/hppdcs.html