PHP计算百分比

7

我需要帮助。这是一段简单的代码,但我不知道该如何写下来。我有以下数字:

$NumberOne = 500;
$NumberTwo = 430;
$NumberThree = 150;
$NumberFour = 30; 

总之,这就是:

$Everything = 1110; // all added

现在我想展示例如$NumberFour在总数中占多少百分比,或者$NumberTwo在$Everything中占多少百分比。这就是"市场份额"。

你有尝试过任何方法吗? - Rizier123
3
如果您发现正在给变量编号,那么您很可能应该使用数组。 - Mark Baker
2
提示:百分比计算公式为 (部分/总数) * 100 - jnovacho
2
demo - Mark Baker
3个回答

30

使用简单的数学公式:将您要找到百分比的数字除以总数,然后乘以100。

例如:

$total = 250;
$portion = 50;
$percentage = ($portion / $total) * 100; // 20

原例的解决方案

要将$NumberFour作为总金额的百分比,您可以使用以下公式:

$percentage = ($NumberFour / $Everything) * 100;

四舍五入

根据你所处理的数字,你可能希望将所得百分比四舍五入。在我的初始例子中,我们得到了20%,这是一个好的圆整数。然而,原始问题使用1110作为总数,30作为要计算百分比的数字(2.70270...)。

PHP内置的round()函数可用于处理显示百分比时的数字:https://www.php.net/manual/zh/function.round.php

echo round($percentage, 2) . '%'; // 2.7% -- (30 / 1110) * 100 rounded to 2dp

辅助函数

只有当使用辅助函数能够证明其必要性时(例如计算和显示百分比不是一次性的操作),才会考虑创建它们。下面附上一个示例,将上述所有内容综合起来。

function format_percentage($percentage, $precision = 2) {
    return round($percentage, $precision) . '%';
}

function calculate_percentage($number, $total) {

    // Can't divide by zero so let's catch that early.
    if ($total == 0) {
        return 0;
    }

    return ($number / $total) * 100;
}

function calculate_percentage_for_display($number, $total) {
    return format_percentage(calculate_percentage($number, $total));
}

echo calculate_percentage_for_display(50, 250); // 20%
echo calculate_percentage_for_display(30, 1110); // 2.7%
echo calculate_percentage_for_display(75, 190); // 39.47%

7
创建一个函数来计算两个数字之间的百分比。
<?php

/**
 * Calculate percetage between the numbers
 */

function percentageOf( $number, $everything, $decimals = 2 ){
    return round( $number / $everything * 100, $decimals );
}

$numbers = array( 500, 430, 150, 30 );
$everything = array_sum( $numbers );

echo 'First of everything: '.percentageOf( $numbers[0], $everything )."%\n";
echo 'Second of everything: '.percentageOf( $numbers[1], $everything )."%\n";
echo 'Third of everything: '.percentageOf( $numbers[2], $everything )."%\n";
echo 'Fourth of everything: '.percentageOf( $numbers[3], $everything )."%\n";

?>

这将输出:
First of everything: 45.05%
Second of everything: 38.74%
Third of everything: 13.51%
Fourth of everything: 2.7%

$numbers = array( 500, 200, 500, 200,100 ); 对于这个数组,总百分比和不等于100,而是99.99。它总是短0.01。 - Rockers Technology
1
@RockersTechnology 这取决于情况。如果它是四舍五入到两位小数,那么可能是这样的。您始终可以显示更多的小数位数。 - Rene Korss
@RockersTechnology 是的,您基本上是通过四舍五入方式从每个计算中截取部分。因此,短0.01并不是问题。 - Muhammad Hassan Javed

-1
您也可以使用以下公式计算百分比。对于百分比,请在其前面加上0。因此,5%将变为0.05。总数乘以0.05即为所需金额。

与上面的答案相同。如果我想要获得x的10%,我会将其乘以0.1。 - Muhammad Hassan Javed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接