以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  小数列的运算判断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66694)

--  作者:李睿涵
--  发布时间:2015/4/12 10:03:00
--  小数列的运算判断
有三个双精度列:总金额,已收款、未收款
总金额是从子表累加的金额总和
列我强制显示为1位小数
在某模块的加载条件里,我写了:  总金额 = 已收款 + 未收款
但在实际运行中发现有个别行没有正确加载
经查后台数据 ,发现未被正确加载的行的总金额实际存储的值为19.0996 而已收款=0  未收款=19.1
不符合我设定的加载条件
请问我改如何写这个条件,使得列都能圆整到1位小数来判断
再次说明,是在窗体加载事件里的代码,不是表达式字段的那里
谢谢!

--  作者:狐狸爸爸
--  发布时间:2015/4/12 10:06:00
--  

列属性只是决定小数位数,不影响实际的值。

修改你的表达式和计算代码,用四舍五入,保留一位小数。

 

对于现有数据,命令窗口执行:

 

for each  dr as datarow in datatables(“表名").DataRows

    dr("数据") = math.round(dr("数据"),1)

next

datatables(“表名").Save()


--  作者:李睿涵
--  发布时间:2015/4/12 10:10:00
--  

math.rount(总金额,1) = math.rount(已收款,1) + math.rount(未收款,1)

这么写会报错,不支持这么写嚒?


--  作者:李睿涵
--  发布时间:2015/4/12 10:11:00
--  
出现像19.0996这样高位小数的情况很少  100行只出现了2行
--  作者:狐狸爸爸
--  发布时间:2015/4/12 10:14:00
--  
呵呵,看2楼

至于三楼的代码,你接触foxtable已经三年了,不是新手,你还写出这样的代码,你应该回头再看帮助文件两遍。
如果有困难,可以先看论坛置顶的那些视频教程,然后回头看帮助。