Skip to content Skip to sidebar Skip to footer

How Do I Shift The Decimal Place In Python?

I'm currently using the following to compute the difference in two times. The out - in is very fast and thus I do not need to display the hour and minutes which are just 0.00 anywa

Solution 1:

The same way you do in math

a = 0.01;
a *= 10; // shifts decimal place right
a /= 10.; // shifts decimal place left

Solution 2:

defmove_point(number, shift, base=10):
    """
    >>> move_point(1,2)
    100
    >>> move_point(1,-2)
    0.01
    >>> move_point(1,2,2)
    4
    >>> move_point(1,-2,2)
    0.25
    """return number * base**shift

Solution 3:

or use the datetime module

>>> import datetime
>>> a = datetime.datetime.strptime("30 Nov 11 0.00.00", "%d %b %y %H.%M.%S")
>>> b = datetime.datetime.strptime("2 Dec 11 0.00.00", "%d %b %y %H.%M.%S")
>>> a - b
datetime.timedelta(-2)

Solution 4:

Expanding upon the accepted answer; here is a function that will move the decimal place of whatever number you give it. In the case where the decimal place argument is 0, the original number is returned. A float type is always returned for consistency.

defmoveDecimalPoint(num, decimal_places):
    '''
    Move the decimal place in a given number.

    args:
        num (int)(float) = The number in which you are modifying.
        decimal_places (int) = The number of decimal places to move.
    
    returns:
        (float)
    
    ex. moveDecimalPoint(11.05, -2) returns: 0.1105
    '''for _ inrange(abs(decimal_places)):

        if decimal_places>0:
            num *= 10; #shifts decimal place rightelse:
            num /= 10.; #shifts decimal place leftreturnfloat(num)

print (moveDecimalPoint(11.05, -2))

Post a Comment for "How Do I Shift The Decimal Place In Python?"