Cette question est similaire à "dropping trailing ‘.0’ from floats", mais pour Perl et avec un nombre maximum de chiffres après la virgule.En Perl, comment puis-je limiter le nombre de places après la virgule mais sans zéros de fin?
Je suis à la recherche d'un moyen de convertir les nombres au format de chaîne, en supprimant tout '0' redondant, y compris pas juste après la décimale. Et toujours avec un maximum de numérique, par ex. 3
Les données d'entrée sont flottantes. sortie souhaitée:
0 -> 0
0.1 -> 0.1
0.11 -> 0.11
0.111 -> 0.111
0.1111111 -> 0.111
Cette solution ne fonctionne que pour un petit nombre. 'print' laisse tomber la partie fractionnaire ou passe à la notation scientifique complètement après 15 chiffres; 'nearest nearest 'peut amplifier toute erreur déjà présente dans le nombre (par exemple arrondir' 111111111129995.56' à' .001' avec 'nearest' produit' 111111111129995.58', alors que 'sprintf ("%. 3f ", 111111111129995.56)' produit correctement '111111111129995.56' .) – vladr