[Python-Dev] Rounding float to int directly (Re: struct module and coercing floats to integers) (original) (raw)

M.-A. Lemburg mal at egenix.com
Tue Aug 1 13:40:06 CEST 2006


Greg Ewing wrote:

M.-A. Lemburg wrote:

I suppose you don't know about the optional argument to round that lets you round up to a certain decimal ?! Yes, I know about, but I rarely if ever use it. Rounding a binary float to a number of decimal places seems a fundamentally ill-considered thing to do anyway. What are the use cases for it, given that one can easily select a number of decimal places when formatting a number for display?

You often have a need for controlled rounding when doing financial calculations or in situations where you want to compare two floats with a given accuracy, e.g. to work around rounding problems ;-)

The usual approach is to use full float accuracy throughout the calculation and then apply rounding a certain key places.

Float formatting is an entirely different issue.

If we were to follow your suggestion, we'd have round() return an integer when called without the argument and a float when called with the argument. No, round() wouldn't have that option at all. If you wanted it, you would use fround() instead, which would have the option and return a float always. This would be a Py3k thing, obviously. If done before then, the new function would have to be given a different name.

Hmm, looks like a YAGNI to me, but perhaps I'm missing something :-)

-- Marc-Andre Lemburg eGenix.com

Professional Python Services directly from the Source (#1, Aug 01 2006)

Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::



More information about the Python-Dev mailing list