Veuillez m'excuser, le titre n'est pas clair, mais je ne sais pas explique mon problème en une courte phrase.
Voici une maquette d'un programme de conversion d'unités (entières mais non flottantes)Je le teste et voici ce que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Teste(object): def Aller(x): return round(x/257) def Retour(x): return x*257 def __init__(self,x): self.x=x def conversion(self): y=Teste.Aller(self.x) self.x=y return y def conversionInv(self): y=Teste.Retour(self.x) self.x=y return yIl est clair que la présence de round(x/257) ne me permets pas de revenir à la valeur première de a.x ( 10537 au lieu de 10652).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 >>> a=Teste(10652) >>> a.x 10652 >>> a.conversion() 41 >>> a.conversionInv() 10537 >>> a.conversion() 41 >>>
Y-a-t'il un moyen de travailler en interne de la classe en flottant, afin de garder la précision suffisante pour revenir à la valeur initiale,
mais de faire en sorte que a.x soit un entier lors de l'interrogation?
Sis autrement, y-a-t'il un moyen de formater le résultat d'une interrogation style a.x?
Dans mon cas, les calculs internes se faisant en flottant et le résultat a.x devra être un entier.
Partager