以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]明明相等,却不知为何执行了? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189427) |
-- 作者:wyz20130512 -- 发布时间:2023/11/30 20:57:00 -- [求助]明明相等,却不知为何执行了? 二者明明值是相等的,不知为何会弹出提示框?请老师指点! CurrentChanged代码: If Forms("应收款").Opened Then Dim t2 As WinForm.Table = Forms("应收款").Controls("Table2") \'子表 Dim jzhje As WinForm.NumericComboBox = Forms("应收款").Controls("ncb_JZHJE") \'记账金额 Dim fpje As WinForm.NumericComboBox = Forms("应收款").Controls("ncb_fpje") \'发票金额 jzhje.FormatString = "#,###.00" fpje.FormatString = "#,###.00" If e.Table.Current IsNot Nothing Then jzhje.Value = 0 \'初始化,以免形成累计值。 \'通过For Each Next循环取得当前行所有数值列的总和。 For Each c As Col In e.Table.Cols If c.IsNumeric Then jzhje.Value = jzhje.Value + e.Table.Current(c.Name) End If Next End If \' Filter = "账单编号 = \'" & e.Table.Current("账单编号") & "\'" fpje.Value = t2.Table.Compute("Sum(金额)") + t2.Table.Compute("Sum(税额)") \'若二者金额不一致,则弹出提示框,并将其底色设置为红色。 If jzhje.Value <> fpje.Value Then jzhje.BackColor = Color.Red fpje.BackColor = Color.Red MessageBox.Show("【记账金额】与【发票金额】不相符!" & vbCrLf & "请核查!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) Else jzhje.BackColor = Color.NavajoWhite fpje.BackColor = Color.NavajoWhite End If End If [此贴子已经被作者于2023/11/30 21:03:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/30 21:26:00 -- 调试 dim a as Decimal = jzhje.Value dim b as Decimal = fpje.Value msgbox(a) msgbox(b) msgbox(a=b) If a <> b Then jzhje.BackColor = Color.Red |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 8:59:00 -- |
-- 作者:有点蓝 -- 发布时间:2023/12/1 9:01:00 -- 控件是不是绑定列,把绑定的列改为高精度列 |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 9:05:00 -- 没有绑定,数值列均为“双精度”。 |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 9:25:00 -- 这是不是二进制在处理小数时的缺陷? If CInt(jzhje.Value) <> CInt(fpje.Value) Then jzhje.BackColor = Color.Red fpje.BackColor = Color.Red MessageBox.Show("【记账金额】与【fa piao金额】不相符!" & vbCrLf & "请核查!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) Else jzhje.BackColor = Color.NavajoWhite fpje.BackColor = Color.NavajoWhite End If 将其转换为整数,问题解决了,但仍旧不明白为什么会出现计算的误差。
|
-- 作者:有点蓝 -- 发布时间:2023/12/1 9:29:00 -- 请上传实例测试 |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 10:30:00 -- |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 10:31:00 -- 上传附件失败? |
-- 作者:wyz20130512 -- 发布时间:2023/12/1 10:31:00 -- |