Foxtable(狐表)用户栏目专家坐堂 → [求助]数据计算问题代码


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

主题:[求助]数据计算问题代码

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/6 18:05:00 [显示全部帖子]

 如下代码,你记得把面试成绩和总成绩改成数据列,而不是表达式列

 

If e.DataCol.Name = "加权系数" Then
    If e.DataRow.Isnull("加权系数") = False Then
        e.DataRow("面试成绩") = Round2(e.DataRow("加权系数")*e.DataRow("本场面试成绩"),2)
    Else
        e.DataRow("面试成绩") = e.DataRow("本场面试成绩")
        e.DataRow("总成绩") = Round2(e.DataRow("笔试成绩")*0.5 + e.DataRow("面试成绩")*0.5,2)
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/7 9:12:00 [显示全部帖子]

以下是引用hrw68529在2014-5-7 8:39:00的发言:
老狐爸在不,round2,不能严格的四舍不入,还需加上+0.0000001,是真的吗

 

round不是严格四舍五入;

 

round2是严格四舍五入。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/7 11:17:00 [显示全部帖子]

 表达式同样可以四舍五入。double类型进行运算是可能丢失精度。

 

 你试试 Round2(Round2(e.DataRow("笔试成绩") * 0.5 + e.DataRow("面试成绩") * 0.5, 6), 2)

 

 实在不行,你可以做一个简单的例子说明。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/7 11:34:00 [显示全部帖子]

 测试了一下,round2有点问题。output.show(round2(68.785,2))

 

 你直接用fomat吧,用Math.Round也可以,Math.Round就需要+0.00001


 回到顶部