oracle--number
1. oracle的number類型是oracle的內(nèi)置類型之一,是oracle的最基礎(chǔ)數(shù)值數(shù)據(jù)類型。在9iR2及其以前的版本中只支持一種適合存儲(chǔ)數(shù)值數(shù)據(jù)的固有數(shù)據(jù)類型,在10g以后,才出現(xiàn)了兩種新的數(shù)值類型,即推出本地浮點(diǎn)數(shù)據(jù)類型(Native Floating-Point Data Types): BINARY_FLOAT(單精度32位)和BINARY_DOUBLE(雙精度64位)。這些新數(shù)據(jù)類型都是基于IEEE二進(jìn)制浮點(diǎn)運(yùn)算標(biāo)準(zhǔn),ANSI/IEEE Std 754-1985 [IEEE 754],使用這些類型時(shí)要加上文字f(BINARY_FLOAT)或者d(BINARY_DOUBLE),比如2.07f、3.000094d
?
2.number類型的語(yǔ)法很簡(jiǎn)單:number(p,s)
p:精度位,precision,是總有效數(shù)據(jù)位數(shù),取值范圍是38,默認(rèn)是38,可以用字符*表示38;
s:小數(shù)位,scale,是小數(shù)點(diǎn)右邊的位數(shù),取值范圍是-84~127,默認(rèn)值取決于p,如果沒(méi)有指定p,那么s是最大范圍,如果只指定了p,那么s=0。
s>0,精確到小數(shù)點(diǎn)右邊s位,然后檢驗(yàn)有效數(shù)位是否<=p;
s<0,精確到小數(shù)點(diǎn)左邊s位,然后檢驗(yàn)有效數(shù)位是否<=p+|s|;
s==0或者未指定,四舍五入到最近整數(shù)?
當(dāng)p<s時(shí)候,表示數(shù)字是絕對(duì)值小于1的數(shù)字,且從小數(shù)點(diǎn)右邊開(kāi)始的前s-p位必須是0,保留s位小數(shù)。
?
例子:具體數(shù)據(jù)可參考下表
?
| Value | Datatype | Stored Value |
| 123.2564 | NUMBER | 123.2564 |
| 1234.9876 | NUMBER(6,2) | 1234.99 |
| 12345.12345 | NUMBER(6,2) | Error |
| 1234.9876 | NUMBER(6) | 1235 |
| 12345.345 | NUMBER(5,-2) | 12300 |
| 1234567 | NUMBER(5,-2) | 1234600 |
| 12345678 | NUMBER(5,-2) | Error |
| 123456789 | NUMBER(5,-4) | 123460000 |
| 1234567890 | NUMBER(5,-4) | Error |
| 12345.58 | NUMBER(*, 1) | 12345.6 |
| 0.1 | NUMBER(4,5) | Error |
| 0.01234567 | NUMBER(4,5) | 0.01235 |
| 0.09999 | NUMBER(4,5) | 0.09999 |
| 0.099996 | NUMBER(4,5) | Error ? |
轉(zhuǎn)載于:https://www.cnblogs.com/yhzh/p/5359264.html
總結(jié)
以上是生活随笔為你收集整理的oracle--number的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 提示缺少Qedit.h问题
- 下一篇: 在Linux上启动oracle 11g