Double durch Hashtable zu SI-String?



  • Hallo zusammen,

    angenommen ich habe einen Wert und einen Faktor:

    double value =  /* Irgendwas */
    double factor = /* Irgendwas */
    

    Jetzt möchte ich eine Funktion haben, die mir einen String aus Wert und Faktor macht. Beispiel:

    wert = 37;
    
    factor = 1000000;  // Wird zu String 37[M]
    factor = 1000;  // Wird zu String 37[k]
    factor = 0.000001; // Wird zu String 37[u]
    

    Dann gibt es ja noch Fälle, wo man zum nächsten SI-Prefix konvertieren müsste. Beispiel:

    wert = 13000;
    factor = 1; // Wird zu String 13[k]
    

    Also im Prinzip müsste man in Abhängigkeit vom Wert und vom Faktor schauen, welches SI-Präfix am passensten ist und Wert entsprechen umwandeln. Vlt. mache ich mir zuviel Gedanken, aber was wäre eurer Ansatz dafür? Gerade die kleinen Präfixe wie 0.00001 machen einen Vergleich (wegen double) kompliziert
    😕



  • Ich wuerde kein double nehmen, sondern nur den Exponenten speichern.



  • Warum Wert und Faktor statt nur Wert in einem double?

    Der double hat innendrin ja schon Wert&Faktor eingebaut.

    Zum Darstellen könnte sich vielleicht prefix=floor(log10(wert)/3) oder sowas anbieten, um den prefix schnell zu errechnen.


Anmelden zum Antworten