[Python] operatore percentuali

Nadir Sampaoli nadirsampaoli a gmail.com
Dom 16 Giu 2013 19:07:01 CEST


Il giorno 16 giugno 2013 14:42, Gianni Di Noia ha scritto:

>
>
>> >     def percentage(part, total):
>> >         return part * 100.0 / total
>> >
>> >     >>> percentage(8, 80)
>> >     10
>>
>> Questo significa: "la percentuale di ottanta che dà come risultato otto è
>> dieci". Poco chiaro e prono ad errori. Perché inverti i fattori?
>
>
> se ho preso 8 mele da una cesta che ne contiene 80, che % ho preso?
> capita spesso di rispondere a domande così
>

Perfetto. Ma allora non si tratta di «8% of 80», bensì del rapporto fra 8 e
80 (i.e. otto ottantesimi) espresso in centesimi (un tizio barbuto direbbe
che «le parole sono importanti»). Del tipo:

    def hundredths_from_ratio(amount, denominator=None):
        result = amount * 100.0
        if denominator:
             result /= denominator
        return result

    >>> hundredths_from_ratio(8, 80)
    10.0
    >>> otto_ottantesimi = 8 / 80
    >>> hundredths_from_ratio(otto_ottantesimi)
    10.0

Può avere senso?

--
Nadir
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130616/c198f3a4/attachment-0001.html>


Maggiori informazioni sulla lista Python