Bonjour,
je me demande s'il y a une méthode simple pour formater Une entrée
Entry 1234.2 ce transforme en 1 234,20 avec 1 234,20 est un flotant
12.2 en 12,20
12,2 en 12,20
12. et 12, en 12,00
1234.2 et 1234,2 en 1 234,20
merci d'avance
Bonjour,
je me demande s'il y a une méthode simple pour formater Une entrée
Entry 1234.2 ce transforme en 1 234,20 avec 1 234,20 est un flotant
12.2 en 12,20
12,2 en 12,20
12. et 12, en 12,00
1234.2 et 1234,2 en 1 234,20
merci d'avance
Salut,
Entry se contente d'afficher une chaîne de caractères.
Pour transformer un nombre flottant 1234.2 en la chaîne de caractères "1 234,20" une solution sera d'utiliser le "bon" locale (en cherchant un peu sur Internet çà se trouve).
Sinon vous pouvez toujours le coder en remplaçant le '.' par ',', en regroupant les chiffres avant la ',' par paquets de 3.
- W
Bonjour,
effectivement c'est ce que j'ais fait
donc il faut accepter ',' '.' après remplacer ',' par '.' car float ne marche qu'avec '.' de même pour les espaces des milliers il faut les supprimer après et il faut aussi vérifier que les caractères saisies appartiennent (0123456789,.) j'ai fait tous ça mais je me suis demandée s'il y a un formatage bien défini
merci
Salut,
Avec les "locale":
mais je n'ai fait que recopier un des exemples qu'on trouve sur Internet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> import locale >>> locale.setlocale(locale.LC_ALL, '') >>> print(locale.format_string('%.2f', 1234.2, grouping=True)) 1*234,20 >>>
- W
merci pour ces informations alors a titre indicatif
le problème quand il n 'y a pas un formatage prés à l'emplois c'est qu'il faut vérifier que la saisie ne comporte pas des lettres de l’alphabet est ça ne se fait pas avec isdigit car il faut permettre la saisie de , et . puis remplacer ',' par point car float n'accepte pas ','
encore plus il faut interdire la saisie du séparateur ',' ou '.' plus qu'une fois bref python aurais du prévoir une chose pareille car c'est quelque chose de très courant qu'on utilise souvent
Nb: mois j'ai utilisé ça: "{:,.2f}".format(float(Montant)).replace(',', ' ').replace('.', ',') que j'ai aussi trouver après beaucoup de recherche
merci encore une fois de plus
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager