Le 28 mars 2011 11:09, Marc TERRIER <marc.terrier@???> a écrit :
> ged <gedeon.legaut@???> a écrit :
>
>> Bonjour,
>>
>> Je viens de me faire un script python qui calcule les mensualités d'un
>> prêt et j'affiche les résultats avec la fonction "print".
>>
>> Je voudrais que par exemple 15000 € apparaisse sous la forme 15 000 €
>> avec un espace entre 15 et 000.
>>
>> Je n'ai pas trouvé comment faire avec les options de format : pour
>> l'instant, j'ai "%10.2f".
>>
>> Est-ce qqn aurait une idée ?
>>
>> Merci et bonne journée
>> Gédéon
>
> Bonjour Gédéon,
>
> Je ne connais rien à Python, mais j'avais voulu faire exactement ça en Perl,
> il y a quelques années, et voici comment j'avais fait : tu peux peut-être
> t'en inspirer pour faire quelque chose d'analogue en Python.
>
> 1) Tu retournes le nombre que tu veux afficher ( sa partie entière, si c'est
> un nombre à virgule ), considéré temporairement comme une chaîne de
> caractères, avec une fonction miroir ( reverse, en Perl ) :
>
> my $titi = "1234567890";
> my $toto = reverse $titi;
> print $toto; ==> "0987654321"
>
> 2) Avec une expression rationnelle toute simple, tu remplaces les groupes de
> trois chiffres par la même chose suivie du caractère que tu veux utiliser
> pour grouper les milliers ( espace en France, virgule aux U.S.A., etc. ) :
>
> $toto =~ s/(\d{3})/$1 /g;
> print $toto ==> "098 765 432 1"
>
> 3) Tu retournes à nouveau le résultat, et voilà, le tour est joué :
>
> print reverse $toto ==> "1 234 567 890"
olalal...
sub FormatNumber {
my( $Number ) = @_;
while( $Number =~ s/^(-?\d+)(\d{3})/$1 $2/ ){};
return( $Number );
}
Sinon, on doit pouvoir s'amuser avec les locales mais j'ai un peu la
flemme de chercher...
PK
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_
mailto:p.karatchentzeff@free.fr
|,4- ) )-,_. ,\ ( `'-'
http://p.karatchentzeff.free.fr
'---''(_/--' `-'\_)