Foxtable(狐表)用户栏目专家坐堂 → 为何数值已转换函数还会四舍五入


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

主题:为何数值已转换函数还会四舍五入

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


加好友 发短信
等级:童狐 帖子:241 积分:1750 威望:0 精华:0 注册:2016/5/20 12:55:00
为何数值已转换函数还会四舍五入  发帖心情 Post By:2016/8/31 13:56:00 [只看该作者]

为何数值已转换函数还会四舍五入
图片点击可在新窗口打开查看此主题相关图片如下:u~l2a%e@ym8_fopjeb7a7as.png
图片点击可在新窗口打开查看
Dim je As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim sfdz As String = Tables("对账列表_Table1").Current("是否对账")
If sfdz = False Then
    Dim num As Decimal
    Dim sum As Decimal
    If je.text <> "" Then
        num =CDec(je.Text)      
End If
    If e.Row.Checked  Then
        num = num + e.Row("金额")
        je.text = num
    Else
        num = CDec(je.text)
        num = num  - e.Row("金额")
        je.text = num
    End If
    For Each r As Row In  e.Table.GetCheckedRows
        sum += 1
    Next
Else
    
End If

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


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

试试用Format
je.text = Format(num,"##.######")


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


加好友 发短信
等级:童狐 帖子:241 积分:1750 威望:0 精华:0 注册:2016/5/20 12:55:00
  发帖心情 Post By:2016/8/31 15:01:00 [只看该作者]

这个方法 试过了 报错 不能将“”字符串转换

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/8/31 15:13:00 [只看该作者]

报什么错误?如果是数字format不应该出错的

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


加好友 发短信
等级:童狐 帖子:241 积分:1750 威望:0 精华:0 注册:2016/5/20 12:55:00
  发帖心情 Post By:2016/8/31 15:20:00 [只看该作者]

还是一样啊 得到的值还是 四舍五入

图片点击可在新窗口打开查看此主题相关图片如下:w{rn%aoerl`7wb{b64ah5v.png
图片点击可在新窗口打开查看
Dim je As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim sfdz As String = Tables("对账列表_Table1").Current("是否对账")
If sfdz = False Then
    Dim num As Decimal
    Dim sum As Decimal
    If je.text <> "" Then
        num =CDec(je.Text)
    End If
    If e.Row.Checked  Then
        num = num + e.Row("金额")
        je.text = Format(num,"##.######")
    Else
        num = CDec(je.text)
        num = num  - e.Row("金额")
        je.text = Format(num,"##.######")
    End If
    For Each r As Row In  e.Table.GetCheckedRows
        sum += 1
    Next
Else
End If


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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/8/31 15:32:00 [只看该作者]

测试没有问题。上例子瞧瞧

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


加好友 发短信
等级:童狐 帖子:241 积分:1750 威望:0 精华:0 注册:2016/5/20 12:55:00
  发帖心情 Post By:2016/8/31 15:35:00 [只看该作者]

上图的金额是 884.3094
我勾选了 两条一样的  也就是说 
884.3094 * 2 = 1768.6188
现在得到的值却是 1768.619

为什么会四舍五入呢??

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


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

请上例子测试

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


加好友 发短信
等级:童狐 帖子:241 积分:1750 威望:0 精华:0 注册:2016/5/20 12:55:00
  发帖心情 Post By:2016/8/31 17:33:00 [只看该作者]

例子 没做成功 就是勾选复选框时计算金额 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部