On Wed, Jul 7, 2010 at 10:04 PM, David Cournapeau <courn...@gmail.com> wrote: > > Decimal vs float is a different matter altogether: decimal has > downsides compared to float. First, there is this irreconcilable fact > that no matter how small your range is, it is impossible to represent > exactly all (even most) numbers exactly with finite memory - float and > decimal are two different solutions to this issue, with different > tradeoffs. Decimal are more "intuitive" than float for numbers that > can be represented as decimal - but most numbers cannot be represented > as (finite) decimal.
This is not a downside of decimal as compared to float, since most numbers also cannot be represented as float. >> And most of the time (in my experience) the inputs and outputs to your >> system and the literals in your code are actually decimal, so >> converting them to float immediately introduces a lossy data >> conversion before you've even done any computation. Decimal doesn't >> have that problem. > > That's not true anymore once you start doing any computation, if by > decimal you mean finite decimal. I don't understand. I described two different problems: problem one is that the inputs, outputs and literals of your program might be in a different encoding (in my experience they have most commonly been in decimal). Problem two is that your computations may be lossy. If the inputs, outputs and literals of your program are decimal (as they have been for most of my programs) then using decimal is better than using float because of problem one. Neither has a strict advantage over the other in terms of problem two. (There is also problem zero, which is that floats more confusing, which is how this thread got started. Problem zero is probably the most important problem for many cases.) > And that will be never true once you > start using non trivial computation (i.e. transcendental functions > like log, exp, etc...). I'm sorry, what will never be true? Are you saying that decimals have a disadvantage compared to floats? If so, what is their disadvantage? (And do math libraries like http://code.google.com/p/dmath/ help ?) Regards, Zooko -- http://mail.python.org/mailman/listinfo/python-list