To pytanie jest podobne do "dropping trailing ‘.0’ from floats", ale dla Perla i z maksymalną liczbą cyfr po przecinku.W Perlu, w jaki sposób mogę ograniczyć liczbę miejsc po przecinku, ale bez końcowych zer?
Szukam sposobu na konwersję liczb na format ciągów, upuszczając wszelkie zbędne "0", w tym nie tylko zaraz po przecinku. I wciąż z maksymalną liczbą cyfrowej, np. 3
Dane wejściowe są zmiennoprzecinkowe. Pożądany wyjściowa:
0 -> 0
0.1 -> 0.1
0.11 -> 0.11
0.111 -> 0.111
0.1111111 -> 0.111
Rozwiązanie to działa tylko na małych ilościach. 'print' upuszcza część ułamkową lub przełącza się na notację naukową łącznie po 15 cyfrach; 'najbliższy' może wzmocnić każdy błąd już obecny w numerze (np. zaokrąglenie' 111111111129995.56' do '.001' z' najbliższym' daje '111111111129995.58', podczas gdy' sprintf ("% .3f", 111111111129995.56) 'poprawnie tworzy' 111111111129995.56' .) – vladr