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)
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 y
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
>>> a=Teste(10652)
>>> a.x
10652
>>> a.conversion()
41
>>> a.conversionInv()
10537
>>> a.conversion()
41
>>>
Il 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).
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.