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 leftSolution 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?"