On Sun, Aug 3, 2008 at 10:04 AM, CNiall <[EMAIL PROTECTED]> wrote: > I want to make a simple script that calculates the n-th root of a given > number (e.g. 4th root of 625--obviously five, but it's just an example :P), > and because there is no nth-root function in Python I will do this with > something like x**(1/n). > > However, with some, but not all, decimals, they do not seem to 'equal > themselves'. This is probably a bad way of expressing what I mean, so I'll > give an example:
> 0.125 >>>> 0.2 > 0.20000000000000001 >>>> 0.33 > 0.33000000000000002 > > As you can see, the last two decimals are very slightly inaccurate. However, > it appears that when n in 1/n is a power of two, the decimal does not get > 'thrown off'. How might I make Python recognise 0.2 as 0.2 and not > 0.20000000000000001? This is a limitation of floaating point numbers. A discussion is here: http://docs.python.org/tut/node16.html Your root calculator can only find answers that are as accurate as the representation allows. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor