数据窗口计算的问题,

morningdew 2002-02-28 09:46:50
小弟做一进销存管理软件,在一个数据窗口中要实现计算平均进价的功能,我用的是该商品的金额除以它的数量等于平均进价的方法,代码如下:
long ll_rowcount
integer i_gmoney,i
decimal i_gnum
ll_rowcount=dw_istore.rowcount()
for i=1 to ll_rowcount step 1
//计算金额
i_gmoney=dw_istore.getitemDecimal(i,"金额")
i_gnum = dw_istore.GetItemDecimal(i,"数量")
if i_gnum <> 0 and i_gmoney <> 0 then
dw_istore.setitem(i,"平均进价",i_gmoney/i_gnum)
dw_istore.update()
end if
next
金额的数据类型为Numeric(8,2)、数量的数据类型为Numeric(6,2),可是有几行计算有误,例如33812.00/51.00=(-622.04),为什么会变成负数呢?更可气的是65838.00/90.00居然等于3.36,不知怎么回事?请大家多多指教。(金额超过3万的就会出错),谢谢。
...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
morningdew 2002-02-28
  • 打赏
  • 举报
回复
谢谢,问题解决了,我太粗心了。马上给分。
programer123 2002-02-28
  • 打赏
  • 举报
回复
属变量越界问题

integer i_gmoney 改为
dec i_gmoney
试一试。
llitcwl 2002-02-28
  • 打赏
  • 举报
回复
准确地说是超过32768吧,溢出了。
换用double吧

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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