Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #70688

Re: Significant digits in a float?

From Ned Batchelder <ned@nedbatchelder.com>
Subject Re: Significant digits in a float?
Date 2014-04-28 15:00 -0400
References <B654EA7E-35C7-4A78-A673-4CAD0C23B5C0@panix.com> <mailman.9550.1398701251.18130.python-list@python.org> <238c9d43-9182-42f7-a4b4-4b73e4cf2a92@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.9552.1398711661.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 4/28/14 2:39 PM, Roy Smith wrote:
> On Monday, April 28, 2014 12:07:14 PM UTC-4, Ned Batchelder wrote:
>
>> On 4/28/14 12:00 PM, Roy Smith wrote:
>>> 38.0  ==> 0
>>> [...]
>>> Is there any clean way to do that?  The best I've come up with so far is to str() them and parse the
>>> remaining string to see how many digits it put after the decimal point.
>>
>> That sounds like a pretty clean way:  len(str(num).partition(".")[2]),
>> though it also sounds like you understand all of the inaccuracies in
>
> Well, it's actually, a little uglier, because I want to map 38.0 ==>0, so I need to special case that.

Ah, right.

>
> The other annoying thing about using str() is its behavior isn't well defined.  It looks like it does the right thing, but I imagine the details could change in a different implementation.
>

I don't have a reference, but in recent Pythons, str() was specifically 
changed to guarantee that it produces the shortest string that when 
re-interpreted as a float, produces the same float.

-- 
Ned Batchelder, http://nedbatchelder.com

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: Significant digits in a float? Ned Batchelder <ned@nedbatchelder.com> - 2014-04-28 12:07 -0400
  Re: Significant digits in a float? Roy Smith <roy@panix.com> - 2014-04-28 11:39 -0700
    Re: Significant digits in a float? Ned Batchelder <ned@nedbatchelder.com> - 2014-04-28 15:00 -0400

csiph-web