Je sais que c'est une question de débutant total, mais la réponse peut ne pas être évidente pour beaucoup de nouveaux programmeurs. Ce n'était pas évident pour moi au début, donc j'ai parcouru Internet à la recherche de modules Perl pour faire cette tâche simple.Comment puis-je convertir entre la notation scientifique et décimale en Perl?
5
A
Répondre
17
sprintf le tour est joué
use strict;
use warnings;
my $decimal_notation = 10/3;
my $scientific_notation = sprintf("%e", $decimal_notation);
print "Decimal ($decimal_notation) to scientific ($scientific_notation)\n\n";
$scientific_notation = "1.23456789e+001";
$decimal_notation = sprintf("%.10g", $scientific_notation);
print "Scientific ($scientific_notation) to decimal ($decimal_notation)\n\n";
génère cette sortie:
Decimal (3.33333333333333) to scientific (3.333333e+000)
Scientific (1.23456789e+001) to decimal (12.3456789)
3
Sur un thème connexe, si vous voulez convertir entre la notation décimale et engineering notation (qui est une version de la notation scientifique) , le module Number::FormatEng du CPAN est pratique:
use Number::FormatEng qw(:all);
print format_eng(1234); # prints 1.234e3
print format_pref(-0.035); # prints -35m
unformat_pref('1.23T'); # returns 1.23e+12
Questions connexes
- 1. double notation scientifique à la notation décimale en Java
- 2. Java: Convertir la notation scientifique int
- 3. La notation scientifique affecte-t-elle la précision de Perl?
- 4. Convertir la notation scientifique en double avec XSLT (FO)
- 5. Convertir d'une chaîne de notation scientifique à float en C#
- 6. matlab matrix notation scientifique
- 7. Chaîne de format en notation scientifique
- 8. chaîne en notation scientifique C++ double conversion
- 9. Comment représenter NSNumber avec une notation scientifique?
- 10. Comment convertir un double en une chaîne en C++ (sans notation scientifique)?
- 11. Comment convertir la représentation décimale d'une adresse IP en binaire?
- 12. Comment éviter la notation scientifique pour les grands nombres?
- 13. Comment convertir la décimale (xx.xx) en binaire
- 14. Existe-t-il un module Perl pour convertir la notation virgule hexadécimale c99 en notation normale?
- 15. PHPExcel: notation scientifique de double/float
- 16. Ruby DataMapper décimales stockées affichage en notation scientifique
- 17. AutoCompleteExtender affiche de longues valeurs numériques en notation scientifique
- 18. notation scientifique Python en utilisant D au lieu de E
- 19. Convertir une décimale en objet
- 20. Dans l'exportation CSV Access 2007: Désactiver la notation scientifique
- 21. Convertir une virgule décimale en C++
- 22. Convertir la valeur en pourcentage en valeur décimale dans PHP
- 23. Notation scientifique lors de l'importation à partir d'Excel dans .Net
- 24. Comment puis-je résoudre une notation infixe sans la convertir en une autre notation?
- 25. Comment jolimer un numpy.array sans notation scientifique et avec une précision donnée?
- 26. Algorithme ou code pour la notation scientifique float to base 2 (IEEE 32 bits) en C++?
- 27. Convertir notation hexadécimale en heures latitudinales et minutes
- 28. La conversion d'une adresse IP de 4 octets à la notation décimale standard
- 29. Lecture des nombres ASCII en utilisant "D" au lieu de "E" pour la notation scientifique en utilisant C
- 30. Comment convertir une décimale décompactée en COMP-3?
J'ai dû utiliser "% .10f" pour obtenir la valeur décimale, car "g" l'a gardé en notation scientifique. J'utilise Perl v5.10.1 sur Ubuntu. Nice post, merci! – Alan
Je n'ai pas pu obtenir 'sprintf' pour fonctionner, mais' printf' et '% .10f' au lieu de' g' ont bien fonctionné. Perl version 5.14.2. – terdon