本教程将向您介绍oracle float
数据类型,并演示如何将float
类型应用于表定义浮点数的字段(列)。
oracle float
数据类型是number
数据类型的子类型。 其主要目的是促进与ansi sql float
数据类型的兼容。
以下显示float
数据类型的语法:
float(p)
我们只能指定float
数据类型的精度。不能指定尺度,因为oracle数据库从数据中解析尺度的。 float
的最大精度是126
。
在float
中,精度是二进制位,而在number
中精度是十进制数。可以使用以下公式在二进制和十进制精度之间进行转换:
p(d) = 0.30103 * p(b)
根据这个公式,因二进制精度的最大126
位数,大致等于十进制数位数的38
位数。
为了使它与sql ansi float兼容,oracle提供了一些别名,如下表所示:
ansi sql float | oracle float |
---|---|
float | float(126) |
real | float(63) |
double precision | float(126) |
例如,不使用float(63)
数据类型,可以使用real
别名代替。
首先,为了方便演示,这里创建一个名为float_demo
的新表:
create table float_demo (
f1 float(1),
f2 float(4),
f3 float(7)
);
其次,向float_demo
表中插入一个新行:
insert
into
float_demo(
f1,
f2,
f3
)
values(
1 / 3,
1 / 3,
1 / 3
);
第三,从float_demo
表中查询数据:
select
*
from
float_demo;
执行上面查询语句,得到以下结果 -
在这个例子中,列f1
,f2
和f3
的数据类型是float(1)
,float(4)
和float(7)
。 因此,列f1
,f2
和f3
的相应精度为1(1 * 0.30103)
,2(4 * 0.30103)
和3(7 * 0.30103)
。
在本教程中,您已经了解了oracle float
数据类型以及如何将其应用于定义表的浮点数的列列。