Math errors in python
Anna Martelli Ravenscroft
anna at aleax.it
Sun Sep 26 08:17:46 EDT 2004
More information about the Python-list mailing list
Sun Sep 26 08:17:46 EDT 2004
- Previous message (by thread): Math errors in python
- Next message (by thread): Math errors in python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Note: I posted a response yesterday, but it apparently never appeared (I was having some trouble with my newsreader) so I'm posting this now. My apologies if it is a duplicate. Alex Martelli wrote: > Paul Rubin <http://phr.cx@NOSPAM.invalid> wrote: > ... > >>The issue here is that Python's behavior confuses the hell out of some >>new users. There is a separate area of confusion, that >> >> a = 2 / 3 >> >>sets a to 0, and to clear that up, the // operator was introduced and >>Python 3.0 will supposedly treat / as floating-point division even >>when both operands are integers. That doesn't solve the also very >>common confusion that (1.0/3.0)*3.0 = 0.99999999. Rational arithmetic >>can solve that. > > > Yes, but applying rational arithmetic by default might slow some > computations far too much for beginners' liking! My favourite for > Python 3.0 would be to have decimals by default, with special notations > to request floats and rationals (say '1/3r' for a rational, '1/3f' for a > float, '1/3' or '1/3d' for a decimal with some default parameters such > as number of digits). This is because my guess is that most naive users > would _expect_ decimals by default... I agree. Naive (eg, non-CS, non-Mathemetician/Engineer) users who grew up with calculators and standard math courses in school may have never even heard of floats! (I made it as far as Calculus 2 in college, but still had never heard of them.) This brings me to another issue. Often c.l.py folks seem surprised that people don't RTFM about floats before they ask about why their math calculations aren't working. Most of the folks asking have no idea they are *doing* float arithmetic, so when they try to google for the answer, or look in the docs for the answer, and skip right past the "Float Arithmetic" section of the FAQ and the Tutorial, it's because they're not DOING float arithmetic - that they know of... So, of course they won't read those sections to look for their answer, any more than they'd read the Complex Number calculations section... People who know about floats con't need that section - the ones who do need it, con't know they need it. If you want people to find those sections when they are looking for answers to why their math calculations aren't working - I suggest you remove the "FLOAT" from the title. Something in the FAQ like: "Why are my math calculations giving weird or unexpected results?" would attract a lot more of the people you WANT to read it. Once you've roped them in, *then* you can explain to them about floats... Anna Martelli Ravenscroft
- Previous message (by thread): Math errors in python
- Next message (by thread): Math errors in python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list