Frank Millman wrote: > To recap, the original problem is that it would appear that some third- > party systems, when serialising int's into a string format, add a .0 > to the end of the string. I am trying to get back to the original int > safely. > > The ideal solution is the one I sketched out earlier - modify python's > 'int' function to accept strings such as '165.0'. > > Do you think this would get any traction if I proposed it? Or would it > fall foul of the moratorium?
No, and no. It would not get any traction -- indeed, many people, including myself, would oppose it. And it would not fall foul of the moratorium, because that is over. I can only point you to what I wrote in reference to somebody else's idea that changing Python was the most "convenient solution": http://www.mail-archive.com/python-list%40python.org/msg315552.html Python is a general purpose programming language. If int("1.0") does not do what you want, write a function that does, and use it instead! You said that you want a function that ignores a trailing .0 but warns you if there's some other decimal value. Easy: def my_int(astring): # Untested if astring.endswith(".0"): astring = astring[:-2] return int(astring) my_int("165.0") will return 165, as expected, while still raising an exception for float values "165.1" or "165.1E9". 90% of programming is deciding *precisely* what behaviour you want. Once you've done that, the rest is easy. Apart from debugging and writing documentation and making it fast enough, which is the other 90%. *wink* -- Steven -- http://mail.python.org/mailman/listinfo/python-list