Je voudrais changer 1762 millisecondes en secondes 1.762 . J'ai essayé la méthode ci-dessous, elle me donne des secondes à un chiffre lorsque j'ai besoin de secondes comme mentionné ci-dessus (c'est-à-dire " 1.762 ").

seconds=(rcccc/1000)%60
sec = int(seconds)
1
fear_matrix 8 mars 2016 à 09:34

3 réponses

Meilleure réponse

Parmi les nombreuses façons de résoudre ce problème, une façon serait de spécifier que l'un des opérandes est un flottant.

>>> 1762 / 1000 # Both integers
1

>>> 1762 / 1000.0 # One float
1.762
7
Ami Tavory 8 mars 2016 à 06:37

Cela semble être Python 2.x, et cela est dû à une division entière. Lorsque bot le numérateur et le dénominateur sont entiers, les résultats seront entiers:

seconds=(rcccc/1000)%60 #this is called integer division: int/int -> resulting in int

Utilisez le point (.) dans votre nombre pour éviter la division entière, indiquant clairement au compilateur que vous ne voulez pas de division entière, mais de virgule flottante:

seconds=(rcccc/1000.0)%60

Vous pouvez également convertir une des valeurs en float:

seconds=(rcccc/float(1000))%60
#or
seconds=(float(rcccc)/1000)%60
1
Ian 8 mars 2016 à 07:00

Vous avez juste oublié de mettre .0. Le fait est que lorsque vous divisez par 1000, il prend la fonction de plancher de la vraie valeur (1,762). Si vous voulez obtenir la vraie valeur, vous devrez représenter 1000 sous forme décimale, par exemple 1000.0. Si vous l'utilisez, il obtiendra la vraie valeur que vous souhaitez (1.762).

0
zixuan 17 août 2019 à 14:14