PHP 计算百分比
PHP calculate percentages
我需要一些帮助。这是一个简单的代码,但我不知道如何写下来。我有数字:
$NumberOne = 500;
$NumberTwo = 430;
$NumberThree = 150;
$NumberFour = 30;
总之是:
$Everything = 1110; // all added
现在我想显示百分比是多少,例如 $NumberFour 占所有内容的百分比,或者 $NumberTwo 占 $Everything 的百分比。所以"market share"。
使用一些简单的数学运算:将您希望找到百分比的数字除以总数,然后乘以 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/en/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%
创建函数来计算两个数字之间的百分比。
<?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%
我需要一些帮助。这是一个简单的代码,但我不知道如何写下来。我有数字:
$NumberOne = 500;
$NumberTwo = 430;
$NumberThree = 150;
$NumberFour = 30;
总之是:
$Everything = 1110; // all added
现在我想显示百分比是多少,例如 $NumberFour 占所有内容的百分比,或者 $NumberTwo 占 $Everything 的百分比。所以"market share"。
使用一些简单的数学运算:将您希望找到百分比的数字除以总数,然后乘以 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/en/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%
创建函数来计算两个数字之间的百分比。
<?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%