Foxtable(狐表)用户栏目专家坐堂 → [求助]求值出错?


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

主题:[求助]求值出错?

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
[求助]求值出错?  发帖心情 Post By:2022/8/17 8:39:00 [只看该作者]

图片点击可在新窗口打开查看相乘应该等于492,差1.
代码为:Select Case e.DataCol.Name
    Case "亏吨", "运价","调整金额"
        If dr("亏吨") >= 0 Then
            dr("应付金额") = Math.Floor(dr("实收数") * dr("运价") + dr("调整金额"))
        Else
            dr("应付金额") = Math.Floor(dr("原发数") * dr("运价") + dr("调整金额")) 
        End If 
End Select

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 8:48:00 [只看该作者]

调试

msgbox(dr("实收数") * dr("运价") + dr("调整金额"))
msgbox(Math.Floor(dr("实收数") * dr("运价") + dr("调整金额")))

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2022/8/17 9:22:00 [只看该作者]

msgbox(Math.Floor(dr("实收数") * dr("运价") + dr("调整金额")))图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2022/8/17 9:23:00 [只看该作者]

图片点击可在新窗口打开查看msgbox(dr("实收数") * dr("运价") + dr("调整金额"))

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2022/8/17 9:24:00 [只看该作者]

但是这里的值我需要取整且不四舍五入。


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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 9:35:00 [只看该作者]

3个列都是什么类型的列?

msgbox(dr("实收数"))
msgbox(dr("运价"))
msgbox(dr("调整金额"))

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2022/8/17 9:38:00 [只看该作者]

双精度类型

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 9:48:00 [只看该作者]

改为高精度列:http://www.foxtable.com/webhelp/topics/1829.htm

Dim a As Double = 32.8 * 15
Dim b As Decimal = 32.8 * 15
Output.Show(a = b)
Output.Show(math.Floor(a))
Output.Show(math.Floor(b))

或者使用变量转换一下:
dim r as Decimal  = dr("实收数") * dr("运价") + dr("调整金额")
dr("应付金额") = Math.Floor(r)

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


加好友 发短信
等级:四尾狐 帖子:851 积分:5858 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2022/8/17 9:57:00 [只看该作者]

改成高精度就可以了,谢谢蓝版。

 回到顶部