Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[C#] Formatieren eines Messwertes

Empfohlene Antworten

Hallo zusammen,

ich habe die Aufgabe ein Programm zu erstellen, das einen eingeben Wert formatiert wieder ausgibt. Die Funktion soll dabei automatisch den Prefix der Einheit anpassen!

Also die Präfixe wären in diesem FAll: f, p, n, µ, m, k, M, G, T"

(siehe: de.wikipedia.org/wik...r_Ma%C3%9Feinheiten)

Parameter:

- Messwert als double

- Anzahl signifikanter Stellen (das ist nicht zwangsläufig die Anzahl der Nachkommastellen!)

- Einheit

- Ein optionales Flag, welches Kennzeichnet, ob die Prefixe "f, p, n, µ, m" verwendet werden dürfen.

(manchmal macht es keinen Sinn z.Bsp. aus 0.5 Hz 500 mHz zu machen)

Eine Beispiel ausgabe könnte so aussehen:

Messwert 2.51236 V

signifikanter Stellen 3

Ausgabe 2.51 V

Messwert 0.251236 V

signifikanter Stellen 3

Ausgabe 251 mV

Messwert 2512.36 V

signifikanter Stellen 3

Ausgabe 2510 kV

Messwert 2512.36 V

signifikanter Stellen 5

Ausgabe 2512.4 kV

Messwert 2512360 V

signifikanter Stellen 3

Ausgabe 2.51 MV

Ich hab keine Ahnung wie ich das machen soll, vielleicht kann mir jemand einen guten Denkanstoß geben =)

lg ivy

prüfen ob flag gesetzt, wenn ja prefix bestimmen

ergebnis auf signifikante stellen runden

string für ausgabe basteln

welcher teil genau ist unklar?

und hast du schon irgendwelche ideen?

hey, also ich habe probleme bei der funktion die den optimale größe analysiert (GetValueInOptimal)...

hier mal mein bsieheriger quelltext

public enum VoltEntity{ //Einheiten festlegen

    V, mV, kV, µV, fV, pV, nV, MV, GV, TV

}


public class Volt

{

    private double mValue; //intern immer die anzahl als Volt halten

    Dictionary<VoltEntity, float> DependencyTable; //Tabelle um die Umrechnungen zu verwalten


    public Volt() {

        SetUpDependencyTable();

    }


    public string GetValueInOptimal(bool AddPrefix) {

        // Das ist die HauptMethode, die den Volt-Eintrag optimal zurückliefert, also in der besten grösse

     }


    private VoltEntity FindBestVoltEntity(){

        }


    public double GetVoltAs(VoltEntity entity)    {//Gibt die Volt-Value in der gewünschten Einheit zurück  


        if (DependencyTable.ContainsKey(entity)) {

            return mValue * DependencyTable[entity];

        } else {

            return 0;

        }

    }


    private void SetUpDependencyTable(){ //umrechnungen

        DependencyTable = new Dictionary<VoltEntity, float>();

        DependencyTable.Add(VoltEntity.kV, 1000f);    //KiloVolt, d.h. Volt * 1000 = KV

        DependencyTable.Add(VoltEntity.mV, 0.001f);    //mV MiliVolt, d.h. Volt * 0.001 = mV

        DependencyTable.Add(VoltEntity.µV, 0.000001f); //µV MikroVolt, d.h Volt * 0.000001 = µV 

        DependencyTable.Add(VoltEntity.fV, 0.000000000000001f); //fV, d.h Volt * 0.000000000000001 = fV

        DependencyTable.Add(VoltEntity.pV, 0.000000000001f); // pV, d.h Volt * 0.000000000001 = pV

        DependencyTable.Add(VoltEntity.nV, 0.000000001f); // nV, d.h Volt* 0.000000001 = nV

        DependencyTable.Add(VoltEntity.MV, 1000000f); // MV MegaVolt, d.h Volt * 1000000= MV

        DependencyTable.Add(VoltEntity.GV, 1000000000f); // GV GigaVolt, d.h Volt * 1000000000 = GV

        DependencyTable.Add(VoltEntity.TV, 1000000000000f); //TV TeraVolt, d.h Volt * 1000000000000 = TV

    }


    //Funktion Signifkikante Stellen berechnen

    private string Significance(double value, int significance, string unit, bool usePrefix) 

    {

        string prefix = "";

        double devisor = 1;

        switch((int)(value != 0 ? Math.Log10(value)/3 : 0))

{

            case -6:

     prefix = "f";

     devisor = 10e-15;

     break;

            case -5:

     prefix = "p";

     devisor = 10e-12;

     break;

            case -4:

     prefix = "n";

     devisor = 10e-9;

     break;

            case -3:

     prefix = "µ";

     devisor = 10e-6;

     break;

            case -2:

     prefix = "m";

     devisor = 10e-3;

     break;

            case -1:

     prefix = "k";

     devisor = 10e-3;            

            case 3:

     prefix = "G";

     devisor = 10e-9;

     break;

            case 4:

     prefix = "T";

     devisor = 10e-12;

     break;

            default:

     prefix = "";

     devisor = 1;

     break;

}

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.