Calcul avec python probleme emplacement point

Résolu
xunil2003 Messages postés 830 Statut Membre -  
mamiemando Messages postés 34178 Statut Modérateur -
Bonjour,

Je suis sur python 3 et j'ai besoin de faire un calcul seulement la virgule ne ce trouve pas au bonne endroit

calcul  = (1.5 * 1000)
print ("calcul")
le résultat est : 1500.0


... or il faut qu'il m'affiche
1.500


Merci d'avance pour vos avis, aides et conseils.

Configuration: Linux / Firefox 94.0
A voir également:

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 754
 
Bonjour,

un avis ? revoir tes cours de maths ???

1.5 * 1000 ... ça fait bien 1500 .. ou 1500.0 si on garde une décimale ..

0
brucine Messages postés 22984 Statut Membre 3 567
 
Bonjour,

Sauf si l'on travaille dans un pays anglo-saxon, mais où le séparateur ne sera pas le point (qui y est un séparateur décimal) mais la virgule: 1,500.
0
jordane45 Messages postés 40050 Statut Modérateur 4 754 > brucine Messages postés 22984 Statut Membre
 
Que tu prennes un point ou une virgule pour le séparateur décimal .. 1.5 * 1000 ou 1,5 *1000 ... ça donne toujours 1500

J'ai surtout l'impression qu'il mélange le séparateur décimal et le séparateur de milliers (qui peut lui aussi se présenter de diverses façons selon le pays et la norme désirée) .. mais ce n'est pas un problème de calcul .. c'est juste une question de "formatage" de l'affichage
0
mamiemando Messages postés 34178 Statut Modérateur 7 886
 
Bonjour,

Comme le dit brucine, il y a confusion entre le séparateur entre la partie entière et la partie décimal, et un éventuel séparateur pour les puissances de 1000.

En programmation le séparateur entier/décimal est toujours "." quel que soit le langage de programmation. Il reste possible en python de personnaliser leur affichage. Idéalement, celui-ci dépend de la locale (c'est-à-dire les paramètres liés à sa zone géographique). Par exemple, dans un texte français, on aurait tendance à utiliser une espace insécable comme séparateur (plutôt qu'un ".") pour les puissances de 1000 et "," pour le séparateur entier/décimal.

Une manière de faire pour personnaliser les deux :

def value_to_string(x):
    return "".join(
        '.' if a == ',' else
        ',' if a == '.' else
        a
        for a in f"{x:,}"
    )

value_to_string(12345678.9876) # Affiche  '12.345.678,9876'


Plus de détails ici et ici.

Bonne chance
0