【发布时间】:2021-10-03 00:27:51
【问题描述】:
我正在计算投资回报率 (ROI),公式为
((Net returns - Actual investment) / Actual investment ) * 100
For Ex: (( 2000 - 1000 ) / 1000 ) * 100 = 100%
因此,这里有一个问题:最初返回值为 0,直到返回实际出现!这样,上面的计算显示-100%
所以我最初考虑使用 Null,如果它为 null,我们可以显示 0%,当值从 null 变为某个值时,我们可以显示相应的 ROI。
问题是,我无法对 Null 值执行加法,
_investment = F('returns') + 2000
_investment .save()
由于returns字段设置为null F表达式无法进行加法运算,如何处理?因为我不能将默认值设置为“0”并基于它使用 if 条件 - 因为也可能有一些负回报。
请提出一些解决这个问题的方法!
【问题讨论】:
-
这能回答你的问题吗? Treat NULL as '0' in Django model
-
使用
Coalesce如上所述链接的重复目标并将第二个参数作为F('actual_investment')传递,结果应该是0。 (注:看第二个答案,比接受的要好) -
Net Returns是否包括Actual Investment和Returns on Investment?你的公式不明确。 -
它也包括实际投资@Ram
-
如果包括实际投资,那么
Net Returns最初怎么会是0呢?最初Net Returns将等于Actual Investment,因此差异为 0,您的公式给出 0% 而不是 -100%。是吗?