假设我有一个这样的范围
if amount is >=20000 USD, then percentage is 1%
if amount is >=30000 USD, then percentage is 2%
if amount is >=40000 USD, then percentage is 3%
....
如何计算我拥有的任何金额的百分比是多少?我实际上只是在做其他解决方案(我知道它很糟糕)。
由于
答案 0 :(得分:0)
只是一个想法: - )
function convert($amount){
if ($amount < 10000){
return 0;
}else if ($amount > 100000){
return 100; //???????
}
return substr($amount,0,1)-1; //take first digit and minus 1
}
像这样运行:
$a=25000;
echo convert($a).'%'; //=1%
答案 1 :(得分:0)
这是一种无条件的方法:
// |---calculate---|
max( [ min( [ floor($n/10000)-1 , 100] ) ,0] )
// upper bounds --^^^ ^--lower bounds
用简单的英语,将数字除以10000
,截断任何小数,减去1,如果大于100
则使用100
,如果小于{{0
则使用0
1}}。
代码:(Demo)
$numbers=[9999,11111,55555,99999,111111,666666,888888,4444444,7777777];
foreach($numbers as $n){
echo "$n => ",max([min([floor($n/10000)-1,100]),0]),"%\n";
}
输出:
9999 => 0%
11111 => 0%
55555 => 4%
99999 => 8%
111111 => 10%
666666 => 65%
888888 => 87%
4444444 => 100%
7777777 => 100%