Wie formatiert man lange Zahlen?

8

Wenn ich eine Zahl habe, die 100.000.000 ist, wie kann ich das als "100M" in einer Zeichenkette darstellen?

    
Sheehan Alam 09.09.2010, 00:28
quelle

4 Antworten

7

Nach meinem Wissen gibt es keine Bibliotheksunterstützung für Abkürzungsnummern, aber Sie können es leicht selbst tun:

%Vor%

Das setzt natürlich voraus, dass Sie keine Zahl wie 1,234,567,89 verkürzen wollen. Wenn Sie tun , dann ist diese Frage ein Duplikat .

    
Aaron Novstrup 09.09.2010, 00:45
quelle
2

Dafür gibt es einen Algorithmus:

Sie benötigen eine Karte, die aussieht wie

%Vor%

... und so weiter ...

1) Nimm die Zahl "num", berechne den Log10-Exponenten "ex" der Zahl und stoppe ihn.

  

Achtung

     

log10 (0) existiert nicht, also überprüfen Sie das   die Nummer ist nicht 0 und seit es   macht keinen Sinn, etwas auszugeben   wie 20="2 ten" sollten Sie zurückkehren   die Zahl wie sie ist, wenn sie kleiner ist   als 100!

2) Jetzt iterieren Sie durch die Schlüssel der obigen Hash-Tabelle und schauen Sie, ob ein Schlüssel übereinstimmt, wenn Sie nicht den Schlüssel nehmen, der kleiner als der Exponent "ex" ist.

3) Aktualisieren Sie "ex" auf diesen Schlüssel!

4) Formatieren Sie nun die Nummer wie

num = num / pow (10, ex)

(!! ex ist ein Schlüssel der Hash-Map !!)

5) Jetzt können Sie die Zahl auf eine bestimmte Genauigkeit runden und num + yourHash[ex]

ausgeben

Ein Beispiel:

%Vor%     
sled 09.09.2010 01:09
quelle
0

Hier ist meine Lösung, um es ein wenig allgemeiner zu machen:

%Vor%     
phreakhead 09.04.2013 22:17
quelle
0

Dies ist eine allgemeinere Lösung.

%Vor%     
Javanator 19.02.2016 06:48
quelle

Tags und Links