报表公式问题:两个数字相乘后四舍五入居然变成五舍六入

jacke 2006-08-03 11:35:17

有数量numberunit,单价priceunit两个字段,我创建计算金额的公式
round({buy.f_number_unit}*{buy.f_price_unit_c},2)
但当数量是970,单价是13.2635,正确的结果应该是12865.60,
而水晶报表的计算结果居然是12865.59
...全文
379 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacke 2006-11-20
  • 打赏
  • 举报
回复
没人碰到这样的问题吗
vvresoft 2006-11-20
  • 打赏
  • 举报
回复
没有,学习
jacke 2006-08-23
  • 打赏
  • 举报
回复
有谁有解决这个漏洞的补丁,指点一下
kingtoo008 2006-08-12
  • 打赏
  • 举报
回复
路过...
------------------------------------------------------------------------------------
100M.Net空间+50M企业邮局=60元/年
100M.Net空间+国际顶级域名=100元/年
国际顶级域名.com.net.cn=50元/年
本站申请域名可绑定免费10M Asp.Net空间
1000M.Net空间 + 100M MsSql数据库 + 1000M企业邮局 + 顶级域名=600元/年
数据库 企业邮局 网站推广 整机租用 美国空间 网站建设 均有售
还有很多优惠套餐提供给各个用户层.
有意者可联系电话:021-64802212 传真:021-64802212
咨询信箱:info@kingtoo.com 咨询OICQ:68311305,379620139 81778640
daisylh 2006-08-10
  • 打赏
  • 举报
回复
看來是crystalreport的公式可能有問題
或者樓主在SQL中直接計算出金額一步到位好了:select ...,round({buy.f_number_unit}*{buy.f_price_unit_c},2) as 金額 from table
daisylh 2006-08-10
  • 打赏
  • 举报
回复
樓主,你這樣處理看看:
在SQL中將單價轉換為字符,比如select ...,單價&'' as 單價 from table
我的mysql是用select ...,concat(單價,'') AS 單價 from table
單價公式為:cdbl(val({單價}))
金額公式為:round({buy.f_number_unit}*{@單價},2) 這樣執行的結果就正常了
試試看怎樣?

我前兩天所做的測試情況是公式round({buy.f_number_unit}*13.2635,2)
jacke 2006-08-09
  • 打赏
  • 举报
回复
to daisylh:一般都是正确,但数量是970,单价是13.2635,金额就会出错,你可以试试
daisylh 2006-08-08
  • 打赏
  • 举报
回复
你的水晶報表是哪一版?
偶用VS.NET2003自帶的有做嘗試,結果是正確的
jacke 2006-08-08
  • 打赏
  • 举报
回复
truncate肯定不行!truncate是去掉设定位数后的小数
jacke 2006-08-07
  • 打赏
  • 举报
回复
to JosenLee:无法访问你的bolg 空间!
daisylh 2006-08-07
  • 打赏
  • 举报
回复
如果將round改為truncate呢?
JosenLee 2006-08-04
  • 打赏
  • 举报
回复
这个地址
http://josenlee2008.spaces.live.com/
JosenLee 2006-08-04
  • 打赏
  • 举报
回复
到我的 bolg 看下,也许有帮助
https://login.live.com/ppsecure/md5auth.srf?lc=2052

4,819

社区成员

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

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