sum accuracy

Tony van der Hoff tony at vanderhoff.org
Fri Apr 15 06:39:45 EDT 2016


On 15/04/16 11:10, Ben Bacarisse wrote:
> Oscar Benjamin <oscar.j.benjamin at gmail.com> writes:
>
>> On 15 April 2016 at 10:24, Robin Becker <robin at reportlab.com> wrote:
> <snip>
>>> yes indeed summation is hard :(
>>
>> Not with Fraction it isn't:
>>
>> from fractions import Fraction
>>
>> def exact_sum(nums):
>>      return sum(map(Fraction, nums))
>>
>> This will give you the exact result with precisely zero rounding
>> error. You can convert it to float at the end.
>
> Just a word of warning for people new to numerical work: there's no
> rounding error, but unless you start with Fraction objects you still
> have input or conversion errors.  The uninitiated might expect
>
>    exact_sum([0.3, 0.7])
>
> to be 1.
>

So I'm uninitiated:
NameError: name 'exact_sum' is not defined

I appreciate the word of warning, but, in my case, it's not helpful.

-- 
Tony van der Hoff        | mailto:tony at vanderhoff.org
Buckinghamshire, England |



More information about the Python-list mailing list