教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
编程设计
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

ms sql中sum()计算保留小数点后两位,怎么做?

 
学院最新推荐文章
PS教程推荐
 
『ms sql中sum()计算保留小数点后两位,怎么做?』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
作者:yudf 来源:csdn 点击数: 更新时间:2008-8-23 
有个计算sum(940/12*0.4+180/2*0.6)用计算器计算得85.332,而mssql计算select sum(940/12*0.4+180/2*0.6)得85.2,???不知怎么回事,想保留小数点后两位85.33,如何做?谢谢!
这个问题第1个回答:
cast(sum(xxxxx) as decimal(10,2))
这个问题第2个回答:
select round(sum(940/12*0.4+180/2*0.6),2)
这个问题第3个回答:
大同小异
这个问题第4个回答:
select cast(sum(940/12*0.4+180/2*0.6) as decimal(15,2))
这个问题第5个回答:
谢谢!
xuam,liangck的还是得85.2!?


这个问题第6个回答:
select cast(sum(940.00/12*0.4  +180/2*0.6) as decimal(10,2))
这个问题第7个回答:
关键是得数不对的,应该是85.33333的,而不是85.2
这个问题第8个回答:
select cast(sum(940.00/12*0.4  +180/2*0.6) as decimal(10,2))
这个问题第9个回答:
6楼的对了,为什么940.00就可以了?
在程序中940是计算出来的,如何把940变成940.00?
这个问题第10个回答:
第一个出现的值是要float才行.

SQL code



1.

sum(cast(940 as money)/12*0.4+180/2*0.6)



2.

sum(940.0/12*0.4+180/2*0.6)






这个问题第11个回答:
引用 10 楼 Garnett_KG 的回复:
第一个出现的值是要float才行.



ps: 为什么要加sum……
这个问题第12个回答:
楼主朋友,SQL在进行数字计算时,总会先去当前数字有效位数最大的一个来作为结果的最恰当近似.您给出的算是通过计算器的结果和通过SQL的结果有误差出现在2个地方,就是你给出的算是中给出最多一位小数的数字,那么SQL就默认中间结果和最终结果都近似保留1位小数,2次舍入产生了85.3333和85.2的不同结果.只要您在SQL中送入一个(且一个足够)与期望结果具有相同位数的小数就能使结果也具有这个精度,中间计算过程也保持这个精度.就像6楼仁兄的那种做法一样,但不局限与940.00,也可以是别的数字.
如果sum函数中的几个数字是通过前台程序传入的,那么可以在传入钱在前台用一个round()函数转化一下就可以了.如果你用的开发语言没有round()这个函数,那么可以查阅一下您所用的开发语言的使用手册,相应的四舍五入函数的语法就可以了.round()函数的语法是round(四舍五入数值类型,保留位数),如果保留位数是0,那么就近似成整数.
以上解释希望您能明白,祝楼主开心.
这个问题第13个回答:
谢谢各位!
特别是acupofnescafe ,讲得如此详细。

】【关闭窗口
·上页:
·下页:
相关文章
 
     数据库类教程 - MsSql综合技巧
普通教程怎么样通过局域网访问sql2000?
普通教程sql求助
普通教程在线等一存储过程,请高手指教
普通教程sql2005地备份文件为啥无法还原
普通教程亚莉莎 啊 亚莉莎, 快做早饭
普通教程OBJECT_ID后怎么加入变量地表名
普通教程索引超出范围。必须为非负值并小
普通教程怎么样写一存储过程用来读取文本
普通教程一个简略地存储过程(急)
普通教程求SQL语句
普通教程求字段包含在某变量中地查询
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光