108 votes

diviser un nombre en parties entières et décimales en python

Existe-t-il un moyen pythonique de diviser un nombre tel que 1234.5678 en deux parties (1234,0.5678), c’est-à-dire la partie entière et la partie décimale?

164voto

mhyfritz Points 4123
import math
x = 1234.5678
math.modf(x) # (0.5678000000000338, 1234.0)

69voto

utdemir Points 9107

Nous pouvons utiliser une fonction intégrée non célèbre; divmod:

 >>> s = 1234.5678
>>> i, d = divmod(s, 1)
>>> i
1234.0
>>> d
0.5678000000000338
 

54voto

mac Points 16282
>>> a = 147.234
>>> a % 1
0.23400000000000887
>>> a // 1
147.0
>>>

Si vous voulez que la partie entière comme un entier et non un flotteur, utilisez int(a//1) à la place. Pour obtenir le n-uplet en un seul passage: (int(a//1), a%1)

EDIT: n'oubliez pas que la partie décimale d'un nombre à virgule est approximative, donc si vous voulez de la représenter comme un homme le ferait, vous devez utiliser la virgule de la bibliothèque

18voto

Mark Ransom Points 132545
 intpart,decimalpart = int(value),value-int(value)
 

Fonctionne pour les nombres positifs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X