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]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

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!