我正在尝试让一些东西在我为我的工作构建的表单上工作,但它似乎没有按照我期望的方式工作。
我想计算 ANL_CMA1_NUM_CLOSED_SALES 和 ANL_CMA2_NUM_CLOSED_SALES 这两个字段之间的百分比差异。
我认为我的数学是正确的,但我只得到个位数的结果,无论是正数还是负数,具体取决于输入的值。
我正在制作一个可以自定义权限级别和四舍五入的表格,我将其四舍五入到最接近的百分之一。谁能帮我解决这个问题?
原始公式末尾没有 -100) * 100) 部分,但也无法正常工作。
FormSet.SetFieldValue(CurrentForm, "ANL_CHG_NUM_CLOSED_SALES",
(((FormSet.GetFieldValue(CurrentForm, "ANL_CMA2_NUM_CLOSED_SALES") -
FormSet.GetFieldValue(CurrentForm, "ANL_CMA1_NUM_CLOSED_SALES")) /
FormSet.GetFieldValue(CurrentForm, "ANL_CMA1_NUM_CLOSED_SALES")) -100) * 100)
请您参考如下方法:
您可能在需要浮点除法(即 1./3 == 0.3333333)的地方使用整数除法(即 1/3 == 0)。
稍微分解一下可能也更容易理解-
cma1 = FormSet.GetFieldValue(CurrentForm, "ANL_CMA1_NUM_CLOSED_SALES")
cma2 = FormSet.GetFieldValue(CurrentForm, "ANL_CMA2_NUM_CLOSED_SALES")
delta = float(cma2 - cma1) / cma1
FormSet.SetFieldValue(CurrentForm, "ANL_CHG_NUM_CLOSED_SALES", delta*100.0)
