以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]round2四舍五入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96490)

--  作者:lgj716330
--  发布时间:2017/2/22 9:25:00
--  [求助]round2四舍五入
    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好象没起作用,这样写不可以吗?

--  作者:有点色
--  发布时间:2017/2/22 9:42:00
--  

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

 

Dim n As Double = 12.345

n = format(n, "0")

msgbox(n)


--  作者:lgj716330
--  发布时间:2017/2/22 10:40:00
--  
不是有误差,是表达式列计算不出来,不知是不是代码有误
--  作者:有点色
--  发布时间:2017/2/22 10:45:00
--  
以下是引用lgj716330在2017/2/22 10:40:00的发言:
不是有误差,是表达式列计算不出来,不知是不是代码有误

 

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

 

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


--  作者:lgj716330
--  发布时间: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

应付运费计算不出来

--  作者:有点色
--  发布时间:2017/2/22 10:57:00
--  

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

 

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

 

 


--  作者:lgj716330
--  发布时间: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?

--  作者:有点色
--  发布时间:2017/2/22 11:33:00
--  

 哦,我考虑错了。

 

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


--  作者:lgj716330
--  发布时间:2017/2/22 12:53:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


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

--  作者:有点蓝
--  发布时间:2017/2/22 14:26:00
--  
代码没有问题,上面例子的测试数据没有一个符合条件的