PL/SQL number型数据
number(<p>,<s>)
精度p取值范围1~38
有效位s取值范围-84~127
最高整数位数=p-s
s正数,小数点右边指定位置开始四舍五入
s负数,小数点左边指定位置开始四舍五入
s是0或者未指定,四舍五入到最近整数
当p小于s时候,表示数字是绝对值小于1的数字,且从小数点右边开始的前s-p 位必须是0,保留s位小数。
--num_test start------------------------------------------------
Connected to Oracle9i Enterprise Edition Release 9.0.1.1.1
Connected as aspire
SQL>
SQL> SET linesize 1000;
SQL> CREATE TABLE hjm_num_test
2 (a NUMBER,
3 b NUMBER(5,2),
4 c NUMBER(5,-2),
5 d NUMBER(5,0),
6 e NUMBER(5),
7 f NUMBER(2,5));
Table created
SQL> INSERT INTO hjm_num_test
2 (a,b,c,d,e,f) VALUES(123.3333,123.3333,123.3333,123.3333,123.3333,-0.0003);
1 row inserted
SQL> INSERT INTO hjm_num_test
2 (a,b,c,d,e,f) VALUES(197.9333,197.9333,197.9333,197.9333,197.9333,0.00012567);
1 row inserted
SQL> COMMIT;
Commit complete
SQL> SELECT * FROM hjm_num_test;
A | B | C | D | E | F | |
1 | 123.3333 | 123.33 | 100 | 123 | 123 | -0.00030 |
2 | 197.9333 | 197.93 | 200 | 198 | 198 | 0.00013 |
(在pl/sql dev sql窗口显示)
--num_test end--------------------------------------------------------
似乎结果很正确,可是现在出来一个问题,当我不在pl/sql dev窗口运行,我在isqlplus中运行,结果就有点不一样了,注意,第1行的F列:
A | B | C | D | E | F |
---|---|---|---|---|---|
123.3333 | 123.33 | 100 | 123 | 123 | -.0003 |
197.9333 | 197.93 | 200 | 198 | 198 | .00013 |
(在isqlplus中显示)
它舍去了末尾的0!在sqlplus下测试也是同样的效果。
不过本人的意向应该是还是保留那个0的,因为number(2,5)它毕竟指定了有效位是5位。
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间