计算每个号码的自定义百分

时间:2017-05-10 20:51:31

标签: php

假设我有一个这样的范围

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%
....

如何计算我拥有的任何金额的百分比是多少?我实际上只是在做其他解决方案(我知道它很糟糕)。

由于

2 个答案:

答案 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%