【问题标题】:Growth calculation NaN with 0 value0 值的增长计算 NaN
【发布时间】:2020-05-12 22:32:39
【问题描述】:

我尝试计算增长,但如果我喜欢上个月的值为零,那么它给了我:

'NaN'

所有这些值都给我'NaN':

举例说明我的价值观:

var_dump((($this_month - $last_month) / $last_month) * 100);
var_dump(((0 - 0) / 0) * 100);
var_dump(((5 - 0) / 0) * 100); //this should be 100% not 'NaN'

做错了什么或我的数学计算有误?

我使用了这个第一个接受的答案(百分比增加...):

https://stackoverflow.com/questions/5799055/calculate-percentage-saved-between-two-numbers

如果上个月成功而当前月不成功,我也有负百分比。

【问题讨论】:

  • 除以 0 产生 NaN。为什么你认为应该是 100%?
  • 是的,使用错误报告,您会看到3v4l.org/otoLh
  • @AbraCadaver 所以我必须使用 switch 语句或 if 语句检查 $last_month 是否为 0?
  • 是的除以 0 在数学中是未定义的。

标签: php


【解决方案1】:

x/0 是未定义的,不管x 是什么。

如果您的 $last_month == 0,那么您就是 dividing by zero,这在数学上是未定义的。

NaN 代表“非数字”,即未定义。

您的代码给出的响应是正确的。

【讨论】:

  • 创造月销售额增长的最佳方法是什么?使用 if 或 switch 语句?因为你是对的。
  • 顺便说一句,这是正确的答案。增加百分比没有意义。如果销售额从 0 美元增加到 150 美元,那增加的百分比是多少? $0 * 2000% = $0$0 * 15% = $0。由您决定如何表示未定义的值。
  • 因为我有销售量和用户数,购买多少和注册多少用户才算数。
  • 如果由于我的回答中解释的原因,您上个月的销售额为 0,则该计算不起作用。您应该将答案标记为正确:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 2017-11-27
  • 1970-01-01
相关资源
最近更新 更多