免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1918 | 回复: 5
打印 上一主题 下一主题

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-19 16:21 |只看该作者 |倒序浏览
各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值
如有表字段 fee decimal(10.2)
数据库中值为123.45
用 select sum(fee) as sumfee from 表名
取到的值为123.00 我是用double型的变量,用%.2f 打印

论坛徽章:
0
2 [报告]
发表于 2003-12-19 16:33 |只看该作者

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值

SQL>; insert into testnum values(3.4);

已创建 1 行。

SQL>; insert into testnum values(3.5);

已创建 1 行。

SQL>; insert into testnum values(3.05);

已创建 1 行。

SQL>; insert into testnum values(3.76);

已创建 1 行。

SQL>; commit;

提交完成。

SQL>; select sum(i) from testnum;

    SUM(I)
----------
     13.71
没有问题,你的fee字段什么类型?

论坛徽章:
0
3 [报告]
发表于 2003-12-19 17:05 |只看该作者

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值

查询得到的结果确实为123.45
但在程序中打印处理的就是 123.00
变量是double 型的。

我执行的完整语句为

select  sum(fee) as sumfee from temptable

取结果集中的 sumfee 值, 用fee = atof(sumfee) ; 赋值
得到的结果就是123.00  不知原因!!

论坛徽章:
0
4 [报告]
发表于 2003-12-19 17:13 |只看该作者

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值

oracle?我的oracle只有number和float,没有double!

论坛徽章:
0
5 [报告]
发表于 2003-12-19 17:29 |只看该作者

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值

表中的字段fee定义为  
number(10,2)
unix下的程序中变量定义为double
系统 unix 5.05
数据库 oracle 7.33

select sum(fee) as sumfee from TempTable
希望取到的是 fee 这个字段的累加值。
在sql 中 执行 select sum(fee) from TempTable 可以得到其值为 123.45
但是:
程序通过取记录集数据然后赋值给 double 型变量时, 值变为 123.00
中间的区别仅仅是  " as sumfee "  多了这个操作
想不通为什么, 是不是和oracle 有关。
还有一点,单独取一个数值赋值给double 型变量没有问题, 只是在取sum时出错。

论坛徽章:
0
6 [报告]
发表于 2003-12-19 17:31 |只看该作者

各位大哥帮忙Oralce 下用sum(fee)取到的值被去到小数值

as sumfee是不影响的,还是你的unix的double定义的不对吧,你自己看看换个类型!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP