bonjour!

>>> 2390/10000
0.239

j'aimerais qu'il me retourne 0.2390
si ce n'est pas possible alors ma question est comment est-ce que je peux transformer un nombre suivant ce schéma:
40230 -> 0.40230
120102 -> 0.120102
j'espère avoir été clair, bonne soirée à tous!
Surement une meilleur solution que ça ? ...
(surtout que j'arrive pas à convertir en float après)

n = 2390
arr = []
n =  str(n)
for j in range(len(n)):
    arr.append(n[j])
arr.insert(0, "0.")
arr = ''.join(arr)
print(arr)

Modifié par vzytoi (24 Nov 2020 - 18:44)
Modérateur
Bonjour,

Je pense que je n'ai rien compris à la question. Ça ne peut pas être aussi simple. Mais je tente quand même :

n = 2390
s = "0."+str(n)
print(s)

Amicalement,
parsimonhi a écrit :
Bonjour,

Je pense que je n'ai rien compris à la question. Ça ne peut pas être aussi simple. Mais je tente quand même :

n = 2390
s = "0."+str(n)
print(s)

Amicalement,


J'ai un entier n et j'aimerais le retourner sous la forme 0.n
Ton code fonction mais au prix de retourner un string et non pas un entier ...

[code]
n = 2390
s = "0."+str(n)
print(float(s))

Si j'essaye de récupérer un entier, python va supprimer les zéros supplémentaires
Modifié par vzytoi (24 Nov 2020 - 19:31)
Modérateur
Bonjour,

Ton besoin est peu clair.

Une fois affiché, ton nombre (qui est un float et non pas entier) est forcément sous forme de string.

Et quand il n'est pas affiché, c'est juste un tas de 0 et de 1 dans la mémoire de l'ordi.

À quel moment et pour quel usage tu as besoin de ces 0 ?

Amicalement,
Modifié par parsimonhi (24 Nov 2020 - 19:45)
J'avais besoins de garder les zéro pour conserver la taille du nombre après l'opération.
En réalité je pourrais conserver la taille de sa longueur dans une variable mais c'est une question que je me posais
Modifié par vzytoi (24 Nov 2020 - 19:48)
Modérateur
Bonjour,

Si tu veux conserver la taille du nombre, soit tu conserves quelque part une string représentant le nombre, ou effectivement soit tu conserves juste sa longueur. Le float, lui, a une représentation en binaire qui ne contient aucune information permettant de dire qu'il y a des zéros à sa droite. Ça n'a juste aucun sens.

Amicalement,
parsimonhi a écrit :
Bonjour,

Si tu veux conserver la taille du nombre, soit tu conserves quelque part une string représentant le nombre, ou effectivement soit tu conserves juste sa longueur. Le float, lui, a une représentation en binaire qui ne contient aucune information permettant de dire qu'il y a des zéros à sa droite. Ça n'a juste aucun sens.

Amicalement,


D'accord, je me demandais si python se permettais de supprimer les zéro qu'il jugeait inutile mais je me suis du coup renseigner sur les décimal à virgule en binaire et effectivement ...
Merci beaucoup de ton aide!