Rounding up to the next 100

Alf P. Steinbach alfps at start.no
Thu Jan 21 22:53:27 CET 2010


* Michael.Coll-Barth at VerizonWireless.com:
>  
> 
>> From: noydb
> 
>> If one has a floating number as a string, is there a spiffy way to
>> round that string-number UP to the nearest 100?
>>
>> XstrNmbr = 3579.127893 -- would want to round that to 3600.
> 
> 
> What's wrong with round?  round( XstrNmbr, -2 ) seems to do the trick.
> Or do you want to get rid of the decimal point as well?

Perhaps completely irrelevant, but just in passing, round() changed semantics 
from 2.x to 3.x, in 3.x always returning int when called with just 1 argument:


   >>> import sys
   >>> sys.version
   '2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]'
   >>> print round.__doc__
   round(number[, ndigits]) -> floating point number

   Round a number to a given precision in decimal digits (default 0 digits).
   This always returns a floating point number.  Precision may be negative.
   >>> _


   >>> import sys
   >>> sys.version
   '3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)]'
   >>> print( round.__doc__ )
   round(number[, ndigits]) -> number

   Round a number to a given precision in decimal digits (default 0 digits).
   This returns an int when called with one argument, otherwise the
   same type as the number. ndigits may be negative.
   >>> _


Might be useful to know regarding "get rid of the decimal point": in 3.x 
round(x) does that, in 2.x it doesn't.


Cheers,

- Alf



More information about the Python-list mailing list