oracle类型范围内,Oracle中NUMBER类型介绍

NUMBER类型介绍

在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在

1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}

的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。

Number的数据声明如下:

表示

作用

说明

Number(p, s)

声明一个定点数

p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127

Number(p)

声明一个整数

相当于Number(p, 0)

Number

声明一个浮点数

其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。

定点数的精度(p)和刻度(s)遵循以下规则:

当一个数的整数部分的长度> p-s时,Oracle就会报错

当一个数的小数部分的长度> s时,Oracle就会舍入。

当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。

当s > p时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入.

NUMBER类型细讲

Oracle number datatype 语法:NUMBER[(precision [, scale])]

简称:precision --> p

scale     --> s

NUMBER(p, s)

范围:1 <= p <=38, -84 <= s <= 127

保存数据范围:-1.0e-130 <= number value < 1.0e+126

保存在机器内部的范围:1 ~ 22 bytes

有效位:从左边第一个不为0的数算起的位数。

s的情况:

s > 0

精确到小数点右边s位,并四舍五入。然后检验有效位是否<= p。

s < 0

精确到小数点左边s位,并四舍五入。然后检验有效位是否<= p + |s|。

s = 0

此时NUMBER表示整数。

eg:

Actual Data   Specified As  Stored As

----------------------------------------

123.89           NUMBER         123.89

123.89           NUMBER(3)     124

123.89           NUMBER(6,2)   123.89

123.89           NUMBER(6,1)   123.9

123.89           NUMBER(4,2)   exceeds precision (有效位为5, 5 > 4)

123.89           NUMBER(6,-2)  100

.01234           NUMBER(4,5)   .01234 (有效位为4)

.00012           NUMBER(4,5)   .00012

.000127       NUMBER(4,5)   .00013

.0000012      NUMBER(2,7)   .0000012

.00000123     NUMBER(2,7)   .0000012

1.2e-4           NUMBER(2,5)   0.00012

1.2e-5           NUMBER(2,5)   0.00001

123.2564      NUMBER        123.2564

1234.9876     NUMBER(6,2)   1234.99

12345.12345   NUMBER(6,2)   Error (有效位为5+2 > 6)

1234.9876     NUMBER(6)     1235 (s没有表示s=0)

12345.345     NUMBER(5,-2)  12300

1234567       NUMBER(5,-2)  1234600

12345678      NUMBER(5,-2)  Error (有效位为8 > 7)

123456789     NUMBER(5,-4)  123460000

1234567890    NUMBER(5,-4)  Error (有效位为10 > 9)

12345.58      NUMBER(*, 1)  12345.6

0.1           NUMBER(4,5)   Error (0.10000, 有效位为5 > 4)

0.01234567    NUMBER(4,5)   0.01235

0.09999       NUMBER(4,5)   0.09999

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Oracle 数据库number 类型可以被转换成小数。这通常是因为 number 类型可以存储整数和小数,而转换成小数是为了精确地存储某些小数值。转换的方式可以通过在数字值后加上 .0 或者使用 Oracle 的内置函数来完成。 例如:将整数值 123 转换为小数 123.0,可以使用以下语句: ``` SELECT 123.0 FROM DUAL; ``` 也可以使用内置函数 to_number() 来完成转换: ``` SELECT to_number('123') FROM DUAL; ``` ### 回答2: Oracle数据库的number类型是一种用于存储数字的数据类型,可以包含整数和小数。当进行数据类型转换时,number类型可以被转换成小数。 在Oracle数据库number类型可以具有不同的精度和范围。如果将一个number类型的值转换成小数,可能是因为数据导入或导出的需要,或者是数据计算或处理的要求。 进行number类型到小数的转换时,可以使用一些内置的函数或操作符来实现。比如,可以使用to_char函数将number类型转换成字符型,然后再使用to_number函数将字符型转换成小数。也可以使用cast函数将number类型直接转换成小数,或者使用数学运算符进行转换。 需要注意的是,在进行数据类型转换时,应该确保转换操作是准确的并且不会导致数据丢失或精度问题。在转换过程,应该考虑源数据的精度和范围,以及目标数据类型的要求。另外,还应该对数据进行适当的校验和处理,以确保数据的准确性和一致性。 总之,Oracle数据库的number类型可以通过使用函数或操作符进行转换,将其转换成小数类型。在进行转换时,应该注意数据的精度和范围,并确保转换操作的准确性和数据的一致性。 ### 回答3: Oracle数据库的number类型可以被转换为小数。在Oracle数据库number数据类型用于存储数值数据。它具有较高的精度和范围,可以存储整数、小数和负数。 当我们将number类型的数据转换为小数时,可以使用数值函数或运算符。一种常见的方法是使用TO_CHAR函数将number数据类型转换为字符串,然后再将字符串转换为小数类型。例如,可以使用以下语句将number类型的数据转换为小数: SELECT TO_NUMBER(TO_CHAR(number_column)) AS decimal_column FROM table_name; 这将从表选择number_column列,并将其转换为字符串,然后再将其转换为小数类型,并将结果存储在名为decimal_column的新列。 另一种常见的方法是使用数值函数,比如ROUND、TRUNC或使用数学运算符进行将number类型数据进行四舍五入、截断或其他数学计算,然后将结果作为小数进行存储。 需要注意的是,数据类型的转换可能会导致精度损失或溢出。因此,在进行这种转换时,需要考虑数据的有效性和精度要求,并进行适当的验证和处理。 总结来说,Oracle数据库number类型可以通过使用数值函数或运算符将其转换为小数类型。但在转换过程需注意数据的有效性和精度要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值