为什么 0:0 作为运算符被忽略?
Why is 0:0 ignored as an operator?
我正在使用这个名为 Webform Calculator 的 Drupal 模块,它使我们成为所谓的运算符。
有一个基于运算符的公式 几乎 可以完成这项工作:
({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
这是正确的做法:
- 如果总重量等于或小于2,则取5
- 如果总重量等于或小于10,则取6
- 如果总重量等于或小于30,则取5
- 如果总重量超过30,就用0
唯一算不出来的(实际上是公式的第一部分):
- 如果总权重等于0,则使用0
它一直向我扔 5。任何人都知道我错了什么,这首先是什么(很难在 Google 上找到参考资料)?
({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
如果total_weight为0则可以解释为:
(0 || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
或
(false || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
这导致第二个条件执行。 0<=2
所以三元"returns"5
我正在使用这个名为 Webform Calculator 的 Drupal 模块,它使我们成为所谓的运算符。
有一个基于运算符的公式 几乎 可以完成这项工作:
({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
这是正确的做法:
- 如果总重量等于或小于2,则取5
- 如果总重量等于或小于10,则取6
- 如果总重量等于或小于30,则取5
- 如果总重量超过30,就用0
唯一算不出来的(实际上是公式的第一部分):
- 如果总权重等于0,则使用0
它一直向我扔 5。任何人都知道我错了什么,这首先是什么(很难在 Google 上找到参考资料)?
({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
如果total_weight为0则可以解释为:
(0 || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
或
(false || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)
这导致第二个条件执行。 0<=2
所以三元"returns"5