以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]一个流水账的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79112)
|
-- 作者:zlf2000168
-- 发布时间:2015/12/24 14:59:00
-- [求助]一个流水账的问题
此主题相关图片如下:b9yr1gonv{y1b8l~o6j2_x.png
记流水账,我将DataColChanged事件设为:
Select
Case e.DataCol.Name Case
"收入","支出" For
Each dr As
DataRow
In e.DataTable.Select("[_SortKey] >= " & e.DataRow("_SortKey")) Dim Val1 As
Double = e.DataTable.Compute("Sum(收入)","[_SortKey] <= "
& dr("_SortKey")) Dim Val2 As
Double = e.DataTable.Compute("Sum(支出)","[_SortKey] <= "
& dr("_SortKey")) dr("余额") = Val1 - Val2 Next End
Select
可是上面在支出6608.3的时候余额就不对了,其他都是正确的,请问老师这个怎么破?
|
-- 作者:大红袍
-- 发布时间:2015/12/24 15:05:00
--
你的收入列、支出列、余额列,都用改成高精度小数吧。
|
-- 作者:zlf2000168
-- 发布时间:2015/12/24 15:09:00
--
谢谢老师,果然可以。但这是为什么呢?
|
-- 作者:大红袍
-- 发布时间:2015/12/24 15:10:00
--
应该是sum合计数据的时候,精度有可能丢失。因为计算机小数都是有精度问题的。
|
-- 作者:zlf2000168
-- 发布时间:2015/12/24 15:12:00
--
哦,谢谢老师
|