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个字节。固定字节存储
本文探讨了Oracle数据库中binary_float和binary_double两种浮点数类型的特点与应用。binary_float为单精度,占用4字节,适合科学计算;binary_double为双精度,占用8字节,精度更高。两者在10g版本后被引入,对比Number类型,它们在金融数值存储上的表现稍逊一筹。
1470

被折叠的 条评论
为什么被折叠?



