Number类型是由oracle软件支持的类型,
binary_float 和binary_double, 允许由在硬盘上(CPU,芯片)上执行运行。
binary_float是一种IEEE固有的单精度浮点数。可存储6位精度
binary_double是一种IEEE固有的双精度浮点数。可存储12位精度
备注,在oracle 10g之前是没有这两种类型的。
一般在科学计算中执行实数处理,依赖于硬件的算术运算速度,使用binary_float/binary_double。
如果希望用来存储金融数值,则用number 较佳。
演示
SQL>create table test_float_double(col_number number, col_float binary_float, col_double binary_double);
SQL>insert into test_float_double
values(9876543210.0123456789,9876543210.0123456789,9876543210.0123456789);
sql>select to_char(col_number), to_char(col_float), to_char(col_double)
from test_float_double
如上图,Binary_float和binary_double无法用于对精度要求高的数据。
显示他们存储结构
binary_float,占用4个字节。固定字节存储
binary_double,占用8个字节。固定字节存储