<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
--=================================
--author:_yeeXun
--date:发表于 @ 2010年12月29日 09:17:00
--address Jau 17-304
--=================================
Oracle中引入了两种新的数据类型:binary_float和binary_double。这两种数据类型是对number数据类型的补充。
Binary_float:存储一个单精度的32位浮点数。
Binary_double:存储一个双精度的64位浮点数。
他们的优点:
1. 需要的存储空间较小:Binary_float需要5个字节,Binary_double需要9个字节,number需要32个字节。
2. 可以表示的数字范围更大
3. 执行运算的速度更快:binary_float和binary_double类型通常是在硬件中执行运算,而number类型在运算之前首先使用软件进行转换。
4. 运算封装:对binary_float和binary_double类型进行的数学运算是封装的,也就是说结果要么是数字,要么是一个特殊值。
5. 取整透明:binary_float和binary_double类型使用2进制来表示数字,而number则使用十进制来表示。
下面是关于 binary_float和binary_double的4个特殊值
<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
特殊值 |
描述 |
Binary_float_nan |
非binary_float 类型的数字 (nan) |
Binary_float_infinity |
Binary_float类型的无穷大 (inf) |
Binary_double_nan |
非binary_double 类型的数字 (nan) |
Binary_double_infinity |
Binary_double类型的无穷大 (inf) |