Foxtable(狐表)用户栏目专家坐堂 → 小数列的运算判断


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

主题:小数列的运算判断

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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
小数列的运算判断  发帖心情 Post By:2015/4/12 10:03:00 [只看该作者]

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/12 10:06:00 [只看该作者]

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

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

 

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

 

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

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

next

datatables(“表名").Save()


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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2015/4/12 10:10:00 [只看该作者]

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

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


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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2015/4/12 10:11:00 [只看该作者]

出现像19.0996这样高位小数的情况很少  100行只出现了2行

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/12 10:14:00 [只看该作者]

呵呵,看2楼

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



 回到顶部