Feedback

C# - double in engineering notation darstellen

Veröffentlicht von am 25.10.2006
(8 Bewertungen)
Das .Net Framework enthält in den standardmäßigen Zahlenformatzeichenfolgen
für das Anzeigen von Zahlen in wissenschaftlicher Notation (exponentiell),
nur den Formatbezeichner "E"/"e" bereit.

Dieses entspricht der scientific notation.
Gerade im technischen Bereich wird jedoch eher ein Bezug
auf SI-Symboleinheiten benötigt.

Folgendes Beispiel dazu.

0.0006

ergibt mit double.ToString("E") = 6,000000E-004
für die "richtige" SI-Darstellung wir 600E-6 benötigt.

Mit dieser Methode ist dies nun einfach möglich.
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

public static string ConvertToEngineering(double d)
    {
        string pattern = "#.##E0";
        
        if(d.Equals(0))
            return d.ToString(pattern);
      
        int Exponent = (int)Math.Floor(Math.Log10(Math.Abs(d)));
      
        switch (Exponent % 3)
        {
            case 1:
            case -2:
                pattern = "##.##E0";
                break;
            case 2:
            case -1:
                pattern = "###.##E0";
               break;
        }
        return d.ToString(pattern);
    } 

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!