Re: PHP 4.0 Bug #7429: percent(); whay not to make it:
| From: | max at tocrawl dot com | Date: | Thu, 26 Oct 2000 03:07:47 +0000 |
| Subject: | Re: PHP 4.0 Bug #7429: percent(); whay not to make it: | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-36038@lists.php.net to get a copy of this message | ||
I do like the idea.
You're right that the rounding is complitelly useless inside the function. I was doing it since
the function was made-&-customized by me, so that's how _I_ was using it.
func_num_args() is also an interesting idea though..
Yeha, I will play around with it. I hope it will be introduced in one way or another somewhere in
new Editions of PHP.
Thanks Ignazio.
Maxim Maletsky
10/25/2000 5:50:23 PM, Ignacio Vazquez-Abrams <ignacio@openservices.net> wrote:
>Interesting idea. Some thoughts though:
>
>1) Why not have more than two values?
>2) Why pass which one should be used instead of just using the first one?
>3) Maybe the function isn't the right place to do rounding.
>
>With those in mind, here is a modified version (for PHP 4):
>
>function percent()
>{
> for($tally=0, $i=0; $i<func_num_args(); ++$i)
> $tally+=func_get_arg($i);
> return ($tally?(func_get_arg(0)*100/$tally):0);
>};
>
>On 24 Oct 2000 maxim@maxim.cx wrote:
>
>> From: maxim@maxim.cx
>> Operating system: RED HAT6.2 Linux
>> PHP version: 4.0.2
>> PHP Bug Type: Feature/Change Request
>> Bug description: percent(); whay not to make it:
>>
>> Hello Developers,
>>
>> While making a simple class that would calculate few statistics about my visitors I came up
>> with this:
>>
>> function percent($num1, $num2, $int, $dec=0)
>> {
>> $sum = $num1+$num2;
>> if($sum==0) return 0;
>> return round(${"num$int"}*100/$sum+0.00000001,$dec);
>> }
>>
>>
>> This is a very simple function to calculate percentage of two numbers.
>>
>>
>> an Example of use:
>>
>> # In a room there are:
>> $males = 42;
>> $females = 67;
>>
>> # To calculate what percent of the males is currently in the room the call to the
>> function would be:
>> $male_percent = percent($males, $females, 1);
>>
>> # Female's percentage?
>> $female_percent = percent($males, $females, 2);
>>
>> # We could of course do 100-$male_percent to know $female_percent
>> # but if this is a class, loop or something then switch $int to 2 would often be much
>> simpler, though.
>>
>>
>> The option to select the number is very useful for me when the data rotates in different
>> orders and the numbers to base on need to be switched.
>> An optional $dec is the [int] of round() to pass.
>> And since I like round to be more precise there is +0.00000001.
>>
>> I am sure that percent() could be made simpler by adding some more portability to it.
>>
>> For example it would be useful optionally not to require both numbers passing to percent()
>> only the $sum and a number right away. But once again it is nice (at least for me) to be able to
>> switch between numbers.
>>
>>
>> Please forgive me if this idea was up there long before me and/or if this function is
>> completely useless.
>>
>> Just though that it would be nice to have one like this. (PHP doesn't have one yet,
>> right?)
>>
>> Maxim Maletsky
>> maxim@maxim.cx
>>
>>
>>
>
>--
>Ignacio Vazquez-Abrams
>Vice President
>OPENSERVICES CORPORATION
>TEL# +1.416.632.7818
>FAX# +1.800.687.6133
>
>