以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 除法进一法如何实现 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=196523) |
-- 作者:timber83 -- 发布时间:2025/5/9 10:44:00 -- 除法进一法如何实现 有两列,列1,列2,列3,要求【列1】除以【列2】小于等于3时,【列3】=1;小于等于6时,【列3】=2;小于等于9时,【列3】=3,,,,,,依次类推 问题1,这个能用表达式实现吗?如果能实现,该怎么编码? 问题2,这个能用其他方式实现吗?该如何编码 |
-- 作者:有点蓝 -- 发布时间:2025/5/9 10:55:00 -- 1、如果如果不是无限的比较,可以使用表达式 IIF(列2=0,null,IIF(列1/列2<=3,1,IIF(列1/列2<=6,2,IIF(…………)))) Select Case e.DataCol.Name Case "列1","列2" Dim dr As DataRow = e.DataRow If dr("列2")<> 0 Then dim d as double = dr("列1") / dr("列2") if d <=3 then dr("列3") = 1 elseif d <=6 then
dr("列3") = 2 …… …… end if End IfEnd Select |
-- 作者:timber83 -- 发布时间:2025/5/9 11:08:00 -- 这样要穷举。除法里面有进一法,我查了一下有math.ceiling的方法,这个支持吗? |
-- 作者:有点蓝 -- 发布时间:2025/5/9 11:25:00 -- 不支持。如果是无限的比较,整个地球都无法解决这种问题,找外星人看会不会。如果是有限的,到哪里结束? |
-- 作者:y2287958 -- 发布时间:2025/5/9 11:57:00 -- For Each 行 As DataRow In DataTables("表A").DataRows Dim i As Double = 行("列1") / 行("列2") 行("列31")=IIf(i Mod 3 = 0, i / 3, Math.Ceiling(i / 3))) Next
|