php - 在不除以零的情况下计算百分比变化

标签 php math divide-by-zero

我有以下用于计算百分比减少或增加的 PHP:

function CalculatePercentageIncrease( $nLastMonthPeriod, $nCurrentPeriod ) {
    if ( !is_numeric( $nLastMonthPeriod ) || !is_numeric( $nCurrentPeriod ) )
        return 0;

    if ( $nLastMonthPeriod == 0 )
        return 0;

    $nLastMonthPeriod = intval( $nLastMonthPeriod );
    $nCurrentPeriod = intval( $nCurrentPeriod );

    $nDifference = ( ( ( $nCurrentPeriod - $nLastMonthPeriod ) / $nLastMonthPeriod ) * 100 );

    return round( $nDifference );
}

我想知道的问题是如果 $nLastMonthPeriod是 0 和 $nCurrentPeriod是 10 那么它应该返回 100 而不是 0?

最佳答案

从 0 到 10 的增加不能被描述为百分比增加。您需要单独处理这种情况。

答案不是 0% 或 100%。

任何一个

  • 告诉函数的用户它只有在旧值是 != 0
  • 时才有效
  • 使用异常(exception)
  • 返回 NULL(由 Jack Maney 建议)
  • 关于php - 在不除以零的情况下计算百分比变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959985/

    相关文章:

    php - 如何通过分组优先级对MySQL数据进行排序

    php - Symfony2 assets 按文件版本控制

    .net - 在椭圆圆周上找到一个点,该点在具有中心点,高度和宽度的矩形内?

    c++ - 为什么 SEM_NOGPFAULTERRORBOX 也抑制被零除?

    python - 在 Pandas 计算中处理除以零

    php - 嵌套GNU Parallel处理多个大文件,拆分每个文件数据作为队列处理

    php - C :\wamp\apps\phpmyadmin3. 5.1\libraries\dbi\mysqli.dbi.lib.php on line 8 中超过最大执行时间 30 秒

    python - 将向量的差异转换为 0 和 1 之间

    C#简单的数学运算得到奇怪的结果

    c++ - 在 C++ 中检查零或非规范化数字