起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 459|回复: 13

表达式计算字段中使用四舍五入函数问题**

[复制链接]
发表于 2008-12-5 15:13:18 | 显示全部楼层 |阅读模式
信息中设置了表达式计算字段

1.jpg

34.53 KB, 下载次数: 262

回复

使用道具 举报

 楼主| 发表于 2008-12-5 15:14:56 | 显示全部楼层
得到的结果却是

2.jpg

42.07 KB, 下载次数: 260

回复 支持 反对

使用道具 举报

发表于 2008-12-5 15:35:56 | 显示全部楼层
稍等,测试一下。
回复 支持 反对

使用道具 举报

发表于 2008-12-5 15:48:16 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=9616
测试后发现确实是有问题的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 15:49:35 | 显示全部楼层

我说的这个问题跟这个有必然联系么?!
回复 支持 反对

使用道具 举报

发表于 2008-12-5 15:50:39 | 显示全部楼层
建议楼主用sql中的round函数去计算。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 15:50:55 | 显示全部楼层
2*6用什么算法能算出12.03来呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 15:53:24 | 显示全部楼层
最初由 zfang 发布
[B]建议楼主用sql中的round函数去计算。 [/B]

我现在新增一条记录,填写了费率和计费数量字段,马上要计算出计费金额,用SQL中的round恐怕不行吧!
回复 支持 反对

使用道具 举报

发表于 2008-12-5 16:11:44 | 显示全部楼层
楼主,用计算字段,然后程序中处理
Business.System.Math.SimpleRoundTo(2/3,-2);
测试了一下上面的结果,是0.67
回复 支持 反对

使用道具 举报

发表于 2008-12-5 22:05:24 | 显示全部楼层
楼主可以这样绕一下,先判断要四舍五入的数是否有小数,有的话(向上取整不等于向下取整)直接用Round(费率*计费数量,2)就行,如果没有小数取零位小数:Round(费率*计费数量,0)。

IIf(Ceil(费率*计费数量)=Floor(费率*计费数量),Round(费率*计费数量,0),Round(费率*计费数量,2))
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 02:11 , Processed in 0.046539 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表