以文本方式查看主题 - 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已经三年了,不是新手,你还写出这样的代码,你应该回头再看帮助文件两遍。 如果有困难,可以先看论坛置顶的那些视频教程,然后回头看帮助。 |