[Python-ideas] Python Numbers as Human Concept Decimal System
Andrew Barnert
abarnert at yahoo.com
Sat Mar 8 23:27:25 CET 2014
On Mar 8, 2014, at 13:54, "Mark H. Harris" <harrismh777 at gmail.com> wrote:
> On Saturday, March 8, 2014 3:35:14 PM UTC-6, Andrew Barnert wrote:
>
>> It looks like you're trying to emulate a pocket calculator here. The question is, why are you accepting floats in the first place if that's your goal?
>
> That's fair... if it were me, or you, I wouldn't. In fact, if it were just me, or just you,
> I don't think any of us would be talking about this--- I wouldn't even have brought it up.
>
> I am advocating for people--- I am going to say, " if you want just a tad more than double
> just to check things out, please use the decimal module and import pdeclib. These folks
> are what Guido called newbies, I'll call them naive users, and these folks are using
> a calculator (like the TI89) and they will be prone to keying in sqrt(2.345) /
So your goal is that if someone is a TI89 expert but a Python novice, they can easily port a function from their TI89 to Python (or maybe even write a TI89-like desktop calculator program) with your library? That doesn't seem too unreasonable of a goal.
The problem is that you're not quite achieving it. If you want a 16-digit-display calculator, using a mix of float64 values and decimals that expand as needed for intermediates is not equivalent to using 20-digit fixed decimals. So they will not get the same results for many functions that they port. And if they really care about having more than a few digits of precision, they either care about these differences, or really really should care. Hiding them in many but not all cases doesn't seem to be doing them a service.
A simpler solution might be to just only support a fixed precision of, say, 8 digits. Then you can handle float inputs without running into that one-too-few 3's problem you mentioned. But obviously this isn't great either--you'd just end up with users who say "your library is perfect for me, except that I need 10 digits, not 8"...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140308/718428b6/attachment.html>
More information about the Python-ideas
mailing list