sum求和的小数问题

lfzbg 2006-10-24 04:37:04
我用SUM对一字段(两位小数)进行求和,大概当和大于1千万时,小数部分的百分位被4舍5入,请问如何准确统计。
...全文
803 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzk0206 2007-01-04
  • 打赏
  • 举报
回复
numformat一下 可能是显示的问题
zhangjian_2015 2007-01-03
  • 打赏
  • 举报
回复
你定义一下,,COL XX FORMAT 999999999999.999999不就OK了吗???
weihouyanli 2006-12-29
  • 打赏
  • 举报
回复
up
YouTuBe 2006-12-21
  • 打赏
  • 举报
回复
up
weiyongzhao 2006-12-07
  • 打赏
  • 举报
回复
数据类型如果是double ,是不是只能有多少为精度,超过了就把小数后的开始截取,换个数据类型试试.
多壮志 2006-12-06
  • 打赏
  • 举报
回复
是没有必要在pl/sql中特意那样处理!
多壮志 2006-12-06
  • 打赏
  • 举报
回复
如果是在sql * plus 或者诸如pl/sql developer之类的工具作为临时的统计显示,不妨使用包子的方法。
不过在sql语句和pl/sql中可以放心的使用。sum没有问题,这个是工具的设计缘故。所以,没有必要在工具中特意的那样处理(会减慢系统的).
user_job 2006-12-05
  • 打赏
  • 举报
回复
decode()是个好东东 帮顶
baojianjun 2006-12-04
  • 打赏
  • 举报
回复
一般类似楼主的问题可以使用DECODE函数来解决
baojianjun 2006-12-04
  • 打赏
  • 举报
回复
for example :
SQL> create table test_tab (num_value number(20,6));

Table created

SQL> insert into test_tab values (1234567.9876);

1 row inserted

SQL> insert into test_tab values (9234567.0012);

1 row inserted

SQL> select * from test_tab;

NUM_VALUE
----------------------
1234567.987600
9234567.001200

SQL> select sum(num_value) from test_tab;

SUM(NUM_VALUE)
--------------
10469134.9888

SQL> select decode(sign(sum(num_value)-10000000),1,round(sum(num_value),2),sum(num_value)) from test_tab;

DECODE(SIGN(SUM(NUM_VALUE)-100
------------------------------
10469134.99
zhoumins 2006-12-03
  • 打赏
  • 举报
回复
select sum(cast(sal as number(24,2))) from emp
ytlovecy 2006-11-29
  • 打赏
  • 举报
回复
你看以下字段类型吧!
我也是初学的!
lfzbg 2006-10-25
  • 打赏
  • 举报
回复
没人回答?
lfzbg 2006-10-25
  • 打赏
  • 举报
回复
没人回答?
dashi 2006-10-24
  • 打赏
  • 举报
回复
接分

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧