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) |
相关推荐
- `BINARY_FLOAT`和`BINARY_DOUBLE`:这两种类型是Oracle的浮点数类型,它们在存储空间、表示范围、运算速度以及特殊值处理方面都有优势,特别是对于大量计算的场景。 2. **字符类型**: - `CHAR(Len)`:固定长度...
`BINARY_FLOAT`和`BINARY_DOUBLE`是浮点数类型,它们提供更高的计算精度和速度,适用于科学计算和高精度计算场景。 #### §2.5 其他数值数据类型 Oracle还支持`BINARY_INTEGER`(32位整数)、`PLS_INTEGER`(PL/...
- BINARY_FLOAT和BINARY_DOUBLE:这两个是浮点数类型,用于存储科学计算中的数值。BINARY_FLOAT是32位单精度,支持至少6位精度,而BINARY_DOUBLE是64位双精度,提供更高的精度。它们都支持无穷大和NaN值。 3. 日期...
`RAW`用于存储固定长度的二进制数据,而`BINARY_FLOAT`和`BINARY_DOUBLE`是浮点数类型,提供高速的浮点运算。 5. **日期和时间类型** Oracle提供了多种日期和时间类型,如`DATE`、`TIMESTAMP`、`TIMESTAMP WITH ...
- `BINARY_FLOAT`和`BINARY_DOUBLE`:适用于科学计算和金融计算等对精度有较高要求的场合。其中`BINARY_DOUBLE`提供更高的精度。 - **示例代码**: ```sql DECLARE wk_cnt BINARY_INTEGER := 0; BEGIN FOR ...
PL/SQL支持多种数值型数据类型,包括`NUMBER`、`BINARY_INTEGER`、`PLS_INTEGER`、`BINARY_FLOAT`和`BINARY_DOUBLE`等。每种类型都有其特定的应用场景和性能特点: - **NUMBER**:适用于所有数值类型,但性能相对较...
The new datatypes BINARY_FLOAT and BINARY_DOUBLE can improve performance in number-crunching applications, such as processing scientific data. Native compilation is easier and more integrated, with ...
数值型数据类型包括整数类型(如NUMBER、INTEGER、BINARY_INTEGER)和浮点类型(如BINARY_FLOAT、BINARY_DOUBLE)。NUMBER是最通用的,可以存储整数或浮点数,并具有可变精度。 INTEGER和BINARY_INTEGER则专门用于...
`BINARY_FLOAT`和`BINARY_DOUBLE`是浮点数类型,提供更快的运算速度和更小的空间占用,但精度低于`NUMBER`。 #### §2.5 其他数值数据类型 Oracle还支持`INTEGER`、`SMALLINT`、`BIGGERINT`等其他数值类型,它们都...
They provide methods to read and write primitive data types like `int`, `float`, `double`, and `long`. These streams handle type conversions automatically, making it easier to read and write complex ...
- **DOUBLE PRECISION/FLOAT/REAL**:声明最大精度为 126 位的浮点数字(约等于 38 位十进制数字),或最大精度为 63 位的浮点数字(约等于 18 位十进制数字)。 - **INTEGER/INT/SMALLINT**:声明最大精度为 38 ...
- **浮点数**: `BINARY_DOUBLE` 和 `BINARY_FLOAT` 适用于需要高精度浮点运算的情况。这些数据类型能够处理较大的数值范围,但相比整数类型来说,其运算效率较低。 - **固定小数**: `NUMBER` 类型可以用于存储固定...
此外,Oracle的NUMBER类型可以处理广泛的数值,而BINARY_FLOAT和BINARY_DOUBLE则提供了浮点数的支持。时间字段在两者之间有所不同,Oracle的时间戳类型可以包含时间区信息,而SQL Server的DATE和TIME类型则相对简单...
- SQL SERVER的bigint对应ORACLE的NUMBER(19),binary对应RAW,bit对应NUMBER(2),char对应CHAR,datetime对应DATE,decimal对应NUMBER,float对应BINARY_DOUBLE,image对应BLOB,int对应NUMBER(10),money对应...
Oracle的PLS_INTEGER和BINARY_INTEGER在计算时有所不同,PLS_INTEGER溢出会导致错误,而BINARY_INTEGER会自动转换为NUMBER类型。 总结,MySQL、Oracle和SQL Server这三大数据库都有各自的特定数据类型,适应不同的...
`PLS_INTEGER`和`BINARY_INTEGER`在溢出时处理方式不同,`PLS_INTEGER`会引发错误,而`BINARY_INTEGER`会自动转换为`NUMBER`类型。 Oracle的`VARCHAR2`与MySQL的`VARCHAR`类似,但最大长度为4000个字节,而`LONG`...
- **新数值类型**:自Oracle 10g开始,引入了两种新的数值类型——本地浮点数据类型(`Native Floating-Point Data Types`),即`BINARY_FLOAT`(单精度32位)和`BINARY_DOUBLE`(双精度64位)。这两种新类型基于IEEE...
4. 转换函数:如TO_NUMBER()将字符串转换为数字,TO_BINARY_FLOAT()和TO_BINARY_DOUBLE()用于浮点数转换。 5. 条件函数:如DECODE()根据条件返回不同值,NVL()和NVL2()用于处理NULL值。 6. 集合函数:如COUNT()计算...