En Perl, comment puis-je limiter le nombre de décimales après la virgule mais n'ont pas de zéros de fin?
Cette question est similaire à "suppression de fuite ‘.0’ de flotteurs", mais pour Perl et avec un nombre maximum de chiffres après la virgule.
Je suis à la recherche d'un moyen de convertir les nombres en format de chaîne de caractères, l'abandon de toute redondante '0', incluant non seulement le droit après la virgule. Et toujours avec un nombre maximum de numérique, par exemple, 3
Les données d'entrée sont des flotteurs. La sortie souhaitée:
0 -> 0
0.1 -> 0.1
0.11 -> 0.11
0.111 -> 0.111
0.1111111 -> 0.111
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également utiliser Math::Ronde pour ce faire:
print
gouttes de la partie fractionnaire ou des commutateurs à la notation scientifique complètement au bout de 15 chiffres;nearest
peut amplifier toute erreur déjà présents dans le nombre (par exemple, l'arrondissement111111111129995.56
à.001
avecnearest
produit111111111129995.58
, alors quesprintf("%.3f", 111111111129995.56)
produit correctement111111111129995.56
.)Utiliser directement à:
...ou de définir une sous-routine pour le faire de manière plus générale:
Imprime:
Vous pouvez utiliser "sprintf" combiné avec "eval".
Par exemple:
sorties:
Cela vous donnera la sortie de votre recherche d',