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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to