ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 小议binary_float和binary_double数据类型

小议binary_float和binary_double数据类型

原创 Linux操作系统 作者:0x0x0x 时间:2012-07-09 08:17:39 0 删除 编辑
小议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博客 ” ,链接:http://blog.itpub.net/26977915/viewspace-734924/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-06-26

  • 博文量
    35
  • 访问量
    91905