<div dir="ltr"><div class="markdown-here-wrapper" style><blockquote style="margin:1.2em 0px;border-left-width:4px;border-left-style:solid;border-left-color:rgb(221,221,221);padding:0px 1em;color:rgb(119,119,119);quotes:none">
<p style="margin:0px 0px 1.2em!important">I don’t know. Personally, I’d be willing to pay a performance penalty<br>to avoid reasoning about floating-point arithmetic most of the time,<br>then “drop into” floats when I need the speed.</p>
</blockquote>
<p style="margin:0px 0px 1.2em!important">This is perhaps a bit off topic for the thread, but +9000 for this.</p>
<p style="margin:0px 0px 1.2em!important">Having decimal literals or something similar by default, though perhaps problematic from a backwards compatibility standpoint, is a) user friendly, b) easily understandable, and c) not surprising to beginners. None of these qualities apply to float literals.</p>
<p style="margin:0px 0px 1.2em!important">I always assumed that float literals were mostly an artifact of history or of some performance limitations. Free of those, why would a language choose them over decimal literals? When does someone ever expect floating-point madness, unless they are doing something that is almost certainly not common, or unless they have been burned in the past?</p>
<p style="margin:0px 0px 1.2em!important">Every day another programmer gets bitten by <a href="http://stackoverflow.com/q/588004/877069">floating point stupidities like this one</a>. It would be a big win to kill this lame “programmer rite of passage” and give people numbers that work more like how they learned them in school.</p>
<blockquote style="margin:1.2em 0px;border-left-width:4px;border-left-style:solid;border-left-color:rgb(221,221,221);padding:0px 1em;color:rgb(119,119,119);quotes:none">
<p style="margin:0px 0px 1.2em!important">The competing proposal is to treat decimal literals as decimal.Decimal values.</p>
</blockquote>
<p style="margin:0px 0px 1.2em!important">I’m interested in learning more about such a proposal. </p>
<p style="margin:0px 0px 1.2em!important">Nick</p>
<div title="MDH:Jmd0O8KgSSBkb24ndCBrbm93LiBQZXJzb25hbGx5LCBJJ2QgYmUgd2lsbGluZyB0byBwYXkgYSBw
ZXJmb3JtYW5jZSBwZW5hbHR5PGRpdj50byBhdm9pZCByZWFzb25pbmcgYWJvdXQgZmxvYXRpbmct
cG9pbnQgYXJpdGhtZXRpYyBtb3N0IG9mIHRoZSB0aW1lLDwvZGl2PjxkaXY+dGhlbiAiZHJvcCBp
bnRvIiBmbG9hdHMgd2hlbiBJIG5lZWQgdGhlIHNwZWVkLjwvZGl2PjxkaXY+PGJyPjwvZGl2Pjxk
aXY+VGhpcyBpcyBwZXJoYXBzIGEgYml0IG9mZiB0b3BpYyBmb3IgdGhlIHRocmVhZCwgYnV0ICs5
MDAwIGZvciB0aGlzLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SGF2aW5nIGRlY2ltYWwgbGl0
ZXJhbHMgb3Igc29tZXRoaW5nIHNpbWlsYXIgYnkgZGVmYXVsdCwgdGhvdWdoIHBlcmhhcHMgcHJv
YmxlbWF0aWMgZnJvbSBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHN0YW5kcG9pbnQsIGlzIGEp
IHVzZXIgZnJpZW5kbHksIGIpIGVhc2lseSB1bmRlcnN0YW5kYWJsZSwgYW5kIGMpIG5vdCBzdXJw
cmlzaW5nIHRvIGJlZ2lubmVycy4gTm9uZSBvZiB0aGVzZSBxdWFsaXRpZXMgYXBwbHkgdG8gZmxv
YXQgbGl0ZXJhbHMuPGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBhbHdheXMgYXNzdW1l
ZCB0aGF0IGZsb2F0IGxpdGVyYWxzIHdlcmUgbW9zdGx5IGFuIGFydGlmYWN0IG9mIGhpc3Rvcnkg
b3Igb2Ygc29tZSBwZXJmb3JtYW5jZSBsaW1pdGF0aW9ucy4gRnJlZSBvZiB0aG9zZSwgd2h5IHdv
dWxkIGEgbGFuZ3VhZ2UgY2hvb3NlIHRoZW0gb3ZlciBkZWNpbWFsIGxpdGVyYWxzPyBXaGVuIGRv
ZXMgc29tZW9uZSBldmVyIGV4cGVjdCBmbG9hdGluZy1wb2ludCBtYWRuZXNzLCB1bmxlc3MgdGhl
eSBhcmUgZG9pbmcgc29tZXRoaW5nIHRoYXQgaXMgYWxtb3N0IGNlcnRhaW5seSBub3QgY29tbW9u
LCBvciB1bmxlc3MgdGhleSBoYXZlIGJlZW4gYnVybmVkIGluIHRoZSBwYXN0PzwvZGl2PjxkaXY+
PGJyPjwvZGl2PjxkaXY+RXZlcnkgZGF5IGFub3RoZXIgcHJvZ3JhbW1lciBnZXRzIGJpdHRlbiBi
eSBbZmxvYXRpbmcgcG9pbnQgc3R1cGlkaXRpZXMgbGlrZSB0aGlzIG9uZV0oaHR0cDovL3N0YWNr
b3ZlcmZsb3cuY29tL3EvNTg4MDA0Lzg3NzA2OSkuIEl0IHdvdWxkIGJlIGEgYmlnIHdpbiB0byBr
aWxsIHRoaXMgbGFtZSAicHJvZ3JhbW1lciByaXRlIG9mIHBhc3NhZ2UiIGFuZCBnaXZlIHBlb3Bs
ZSBudW1iZXJzIHRoYXQgd29yayBtb3JlIGxpa2UgaG93IHRoZXkgbGVhcm5lZCB0aGVtIGluIHNj
aG9vbC48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxkaXY+Jmd0OyBUaGUgY29tcGV0aW5nIHBy
b3Bvc2FsIGlzIHRvIHRyZWF0IGRlY2ltYWwgbGl0ZXJhbHMgYXMgZGVjaW1hbC5EZWNpbWFsJm5i
c3A7PHNwYW4gc3R5bGU9ImxpbmUtaGVpZ2h0OiAxLjU7Ij52YWx1ZXMuPC9zcGFuPjwvZGl2Pjwv
ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSdtIGludGVyZXN0ZWQgaW4gbGVhcm5pbmcgbW9yZSBh
Ym91dCBzdWNoIGEgcHJvcG9zYWwuJm5ic3A7PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5OaWNr
PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jun 1, 2015 at 2:03 AM Jim Witschey <<a href="mailto:jim.witschey@gmail.com">jim.witschey@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, May 31, 2015 at 11:46 PM, Matthias Bussonnier<br>
<<a href="mailto:bussonniermatthias@gmail.com" target="_blank">bussonniermatthias@gmail.com</a>> wrote:<br>
> IIRC (during | after) the language submit at PyCon this year, it was said that maybe the stdlib should get<br>
> less features, not more.<br>
<br>
Rationals (and Decimals) already exist in the standard library. The<br>
original proposal (as I read it, anyway) is more about the default<br>
interpretation of, e.g., integer division and decimal-number literals.<br>
<br>
> Side note, Sympy as a IPython ast-hook that will wrap all your integers into SymPy Integers and hence<br>
> give you rationals of whatever you like, if you want to SymPy-plify your life.<br>
<br>
Thank you for the pointer -- that's really cool.<br>
<br>
> But for majority of use will it be useful ?<br>
<br>
I believe interpreting "0.1" as 1/10 is more ergonomic than<br>
representing it as 1.600000023841858 * (2^-4). I see it as being more<br>
useful -- a better fit -- in most use cases because it's simpler, more<br>
precise, and more understandable.<br>
<br>
> What would be the performance costs ?<br>
<br>
I don't know. Personally, I'd be willing to pay a performance penalty<br>
to avoid reasoning about floating-point arithmetic most of the time,<br>
then "drop into" floats when I need the speed.<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div>