小议binary_float和binary_double数据类型
binary_float和binary_double是Oracle 10g引入的两种新的数据类型,binary_float可以存储32位浮点数;
binary_double可以存储64位浮点数。
binary_float和binary_double是对现有的NUMBER类型的补充,它们具有以下优点:
1、需要的存储空间小,binary_float和binary_double分别需要5个字节和9个字节的存储空间,而number类型则需要22个字节的存储空间;
2、可以表示的数字范围更大。
3、执行运算的速度更快。binary_float和binary_double的运算通常都在硬件中执行,而NUMBER类型则在运算前先使用软件进行转换。
4、运算封闭。binary_float和binary_double进行的数学运算是封闭的,这就是说结果要么返回一个数字,要么返回一个特殊值。
比如:如果将两个binary_float数字类型相除,那么就会返回一个binary_float类型的结果。
5、取整透明。binary_float和binary_double使用二进制来表示数字,而number则使用10进制。
下面介绍binary_float和binary_double的使用方式:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table binary_test(flaot_test binary_float,double_test binary_double);
表已创建。
SQL> insert into binary_test values(33.4f,12.3d);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from binary_test;
FLAOT_TEST DOUBLE_TEST
---------- -----------
3.34E+001 1.23E+001
SQL> insert into binary_test values(binary_float_infinity,binary_double_infinity);
已创建 1 行。
SQL> select * from binary_test;
FLAOT_TEST DOUBLE_TEST
---------- -----------
3.34E+001 1.23E+001
Inf Inf
点评:binary_float和binary_double在oracle 10g以上的版本才能用!如果卡发一个涉及大量数字运算的系统,
那就应该考虑使用binary_float和binary_double类型来表示数字。
参考自oracle11g开发指南!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31373361/viewspace-2121953/
,如需转载,请注明出处,否则将追究法律责任。