9
votes

Comment puis-je déplacer la décimale dans Python?

J'utilise actuellement ce qui suit pour calculer la différence en deux fois. La sortie est très rapide et donc je n'ai pas besoin d'afficher l'heure et les minutes seulement 0.00 de toute façon. Comment puis-je déplacer réellement la décimale en python? xxx


1 commentaires

Non, se vanter mais une approche très simple pour certaines personnes pourrait faire re7 (r '[az]', '', numéro.lower ()) , alors faire int ( Numéro) ou float (numéro) . Lorsque vous souhaitez déplacer le décimal place diviser ou multiplier par 10 , simple;)


4 Réponses :


21
votes

la même chose que vous faites en maths xxx


5 commentaires

Surveillez la division entière. Si A est un entier, cela peut laisser des gratter les têtes. Peut-être changer la dernière ligne vers A / = 10. .


Merci! tellement vrai ... je suppose que je le faisais plus compliqué qu'il aurait dû être: D


Comme un ajout à ce que @Tylercrompton a correctement dit à propos de la division entière. En tant que norme (tout ce que j'ai l'intention de faire), j'ai toujours de __future__ division d'importation en haut de mon script. De cette façon, je me suis sauvé beaucoup de têtes. :) (Oh, et au fait, cela a été résolu dans Python3).


Ces opérations ne sont pas inverse les unes des autres, comme vous l'attendez d'opérateurs de quart binaires (<<, >>), en raison des erreurs d'arrondi.


Ce n'est pas un bon moyen de le faire comme vous donnerez des erreurs d'arrondi.



1
votes

ou utilisez le DateTime module xxx < / pré>


0 commentaires

1
votes

expansion sur la réponse acceptée; Voici une fonction qui déplacera la décimale de tout numéro que vous le donnez. Dans le cas où l'argument décimal de l'endroit est 0, le nombre d'origine est renvoyé. Un type de flotteur est toujours retourné pour la cohérence.

def moveDecimalPoint(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 _ in range(abs(decimal_places)):

        if decimal_places>0:
            num *= 10; #shifts decimal place right
        else:
            num /= 10.; #shifts decimal place left

    return float(num)

print (moveDecimalPoint(11.05, -2))


0 commentaires

2
votes
def move_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

0 commentaires