Wie kann ich eine Zahl in Perl in ihre Mehrfachform umwandeln?

7

Kennst du eine einfache und unkomplizierte Methode / Sub / Modul, die es mir erlaubt, eine Zahl (sagen wir 1234567.89) in eine leicht lesbare Form umzuwandeln - etwas wie 1.23M?

Im Moment kann ich das durch Vergleiche machen, aber ich bin nicht glücklich mit meiner Methode:

%Vor%

Danke für Ihre Hilfe!

    
Mad_Ady 30.09.2008, 13:14
quelle

5 Antworten

20

Das Modul Number :: Bytes :: Human sollte Ihnen helfen können.

Ein Beispiel für die Verwendung finden Sie in der Übersicht:

%Vor%     
WalkingRandomly 30.09.2008, 13:18
quelle
3

Number :: Bytes :: Human scheint genau das zu tun, was Sie wollen.

    
Swaroop C H 30.09.2008 13:18
quelle
2
%Vor%     
Michael Cramer 30.09.2008 14:23
quelle
2

In reiner Perl-Form habe ich dies mit einem verschachtelten ternären Operator getan, um Ausführlichkeit zu schneiden:

%Vor%

Ausgaben:

%Vor%     
spoulson 30.09.2008 13:27
quelle
0

Dieses Snippet ist in PHP, und es basiert lose auf einem Beispiel, das ein anderer irgendwo auf seiner Website hatte (Entschuldigung, Kumpel, ich kann mich nicht erinnern).

Das Grundkonzept besteht darin, anstelle von if eine Schleife zu verwenden.

%Vor%

Der Aufruf von number_format () ist eine PHP-Bibliotheksfunktion, die eine Zeichenfolge mit Kommas zwischen den Tausendergruppen zurückgibt. Ich bin nicht sicher, ob etwas in Perl existiert.

Der Parameter $ dig legt eine Begrenzung für die Anzahl der anzuzeigenden Ziffern fest. Wenn $ dig 2 ist, erhalten Sie 1.2k von 1237.

Um Bytes zu formatieren, teilen Sie sie einfach durch 1024.

Diese Funktion wird bis heute in einigen Produktionscodes verwendet.

    
Mnebuerquo 30.09.2008 13:30
quelle

Tags und Links