binary_float、binary_double 、number

 

Oracle中引入了两种新的数据类型:binary_float和binary_double。这两种数据类型是对number数据类型的补充。

Binary_float:存储一个单精度的32位浮点数。

Binary_double:存储一个双精度的64位浮点数。

number 可存储整型、也可存储小数,但存储小数时数据被格式化了,如283038.55803527放在库里可能变成283038.558035270016000,这是拿number(30,15)类型的数据做为例子来说。

 

他们的优点:

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)

猜你喜欢

转载自javatea.iteye.com/blog/1968119