Code : Sélectionner tout - Visualiser dans une fenêtre à part my $equiproba = 0.25**20;Comment puis-je obtenir la valeur 9.095e-013 (si il n'y a pas moyen d'arrondir, 9.094-013 est mieux que rien)?9.09494701772928e-013
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part my $equiproba = 0.25**20;Comment puis-je obtenir la valeur 9.095e-013 (si il n'y a pas moyen d'arrondir, 9.094-013 est mieux que rien)?9.09494701772928e-013
Merci,
Regarde coté sprintf
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
C'est la première fonction à laquelle j'ai pensé mais l'ennui est que le sprintf doit se faire sur la première partie d'$equiproba sprintf après qu'elle ait été formatée sous une écriture scientifique pour l'affichage avec un e-013.
...
pour Perl $equiproba = 0.0000..00090949
Il faudrait un module permettant de récupérer la partie1 9.09494701772928 et la partie2 e-013 pour ensuite faire un sprintf sur la partie1.
sprintf permet la conversion de
%e a floating-point number, in scientific notation
Si je fais
cela donne 0.000
Code : Sélectionner tout - Visualiser dans une fenêtre à part sprintf ( "%.3f", sprintf ( "%e",$equiproba) )
Voila, j'ai trouvé ... c'est peut-être pas très joli mais cela fonctionne
... si quelque un a mieux à proposer, le conseil est toujours le bien venu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 my $equiproba = 0.25**20; my ($val, $exp) = ( split /e/, sprintf ("%e", $equiproba) ); print sprintf ( "%.3f", $val)."e".$exp."\n";
Merci,
Partager