Foxtable(狐表)用户栏目专家坐堂 → [求助]round2四舍五入


  共有1901人关注过本帖树形打印复制链接

主题:[求助]round2四舍五入

帅哥哟,离线,有人找我吗?
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]round2四舍五入  发帖心情 Post By:2017/2/22 9:25:00 [只看该作者]

    ElseIf dr("包裹重量")>dr("首重") And round2((dr("包裹重量")-dr("首重"))/1000,0)<(dr("包裹重量")-dr("首重"))/1000 Then
            dr("应付运费") = dr("首重计费")+dr("续重计费")*(round2((dr("包裹重量")-dr("首重"))/1000,0))+dr("续重计费")/2*((dr("包裹重量")-dr("首重"))/1000-round2((dr("包裹重量")-dr("首重"))/1000,0))

这里的round2好象没起作用,这样写不可以吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/22 9:42:00 [只看该作者]

 如果,你觉得有误差。可以改成 format

 

Dim n As Double = 12.345

n = format(n, "0")

msgbox(n)


 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/2/22 10:40:00 [只看该作者]

不是有误差,是表达式列计算不出来,不知是不是代码有误

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/22 10:45:00 [只看该作者]

以下是引用lgj716330在2017/2/22 10:40:00的发言:
不是有误差,是表达式列计算不出来,不知是不是代码有误

 

什么叫表达式列算不出来?表达式列是不能用代码直接赋值的。

 

具体问题,最好做个实例,至少截图说明。


 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/2/22 10:52:00 [只看该作者]

哦,不能叫表达式列
With DataTables("统计表1").DataCols  '用表达式列计算库存数据
    .Add("应付运费",Gettype(Double))
    For Each dr As DataRow In DataTables("统计表1").DataRows
    If dr("包裹重量")>dr("首重") And round2((dr("包裹重量")-dr("首重"))/1000,0)<(dr("包裹重量")-dr("首重"))/1000 Then
            dr("应付运费") = dr("首重计费")+dr("续重计费")*(round2((dr("包裹重量")-dr("首重"))/1000,0))+dr("续重计费")/2*((dr("包裹重量")-dr("首重"))/1000-round2((dr("包裹重量")-dr("首重"))/1000,0))
end if
end with

应付运费计算不出来

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/22 10:57:00 [只看该作者]

这个条件,无论如何也不可能成立吧?首重一般都是整数,round2之后的数据肯定大于等于

 

dr("包裹重量")>dr("首重") And round2((dr("包裹重量")-dr("首重"))/1000,0)<(dr("包裹重量")-dr("首重"))/1000

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/2/22 11:15:00 [只看该作者]

成立的,如包裹重量3200,首重1000, round2((dr("包裹重量")-dr("首重"))/1000,0)=2,(dr("包裹重量")-dr("首重"))/1000=2.2
如包裹重量3600,首重1000, round2((dr("包裹重量")-dr("首重"))/1000,0)=3,(dr("包裹重量")-dr("首重"))/1000=2.6

难道上述round2后,只是显示出来是2或3,实际数据还是2.2或2.6?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/22 11:33:00 [只看该作者]

 哦,我考虑错了。

 

 你单独做个例子发上来测试下。代码应该没问题的。


 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/2/22 12:53:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


[此贴子已经被作者于2017/2/22 13:12:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/22 14:26:00 [只看该作者]

代码没有问题,上面例子的测试数据没有一个符合条件的

 回到顶部
总数 11 1 2 下一页