none
Aus NumericUpDown wert ausrechnen und anzeigen RRS feed

  • Frage

  • Hallo,
    ich wollte mal fragen ob jemand weiß wie man folgendes macht:

    NumericUpDown1: Wert 3500 : NumericUpDown2: 1750

    Dann soll im 3. (NumericUpDown oder Label) der Wert angezeigt werden der raus kommt. 3500:1750= 2 -> 2 sollte dann in NumericUpDown oder Label angezeigt werden..

    Wenn es geht auch mit 2,00 also mit Kommarstellen..

    Der Wert sollte nach der Eingabe sofort angezeigt werden..

    Freitag, 6. Dezember 2013 11:43

Antworten

  • Hallo,
    Holgers oben geposteter Code führt eine Division der Werte aus 2 NumericUpDown's durch. Das Ergebnis wandelt er in einen String um und weiß ihn dem Control showResultlabel51 zu. Das ist vielleicht ein Label oder eine TextBox.

    Um das Ergebnis in einem NumericUpDown auszugeben, musst du die Value-Eigenschaft von diesem zuweisen:

    this.numericUpDown3.Value= result;//Result wird wie oben zu sehen ist berechnet.
    Wobei der Cast in ein Double nicht immer von Nutzen ist. Die Value-Eigenschaft ist vom Typ decimal, der eine deutlich höhere Genauigkeit aufweiß als double. Da Ein- und Ausgabe von NumericUpDown's gesteuert werden, würde ich den cast weg lassen:
    decimal result = this.numericUpDown1.Value / this.numericUpDown2.Value;
    numericUpDown3.Value = result; // Man könnte sich das zuweisen von result auch sparen und einen Einzeiler daraus formen.
    Vielleicht hilft dir die Erklärung ;)


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Freitag, 6. Dezember 2013 14:05
    Moderator

Alle Antworten

  • Hallo,
    wo genau liegt hier dein Problem?

    Vielleicht hilft die folgendes:

    ...
    double result =(double) this.numericUpDown1.Value / (double) this.numericUpDown2.Value;
    
    this.showResultLabel.Text = result.ToString();
    ...
    Wenn du noch spezifischere Fragen hast, helfe ich dir gerne... :)

    Viele Grüße Holger M. Rößler



    Freitag, 6. Dezember 2013 12:12
  • Fehler    1    'WindowsFormsApplication5.Form1' enthält keine Definition für 'showResultlabel51', und es konnte keine Erweiterungsmethode 'showResultlabel51' gefunden werden, die ein erstes Argument vom Typ 'WindowsFormsApplication5.Form1' akzeptiert (Fehlt eine Using-Direktive oder ein Assemblyverweis?).

    Das ist die Fehlermeldung...

    Freitag, 6. Dezember 2013 13:04
  • Hallo,
    zeig doch bitte mal deinen Code...


    Viele Grüße Holger M. Rößler

    Freitag, 6. Dezember 2013 13:25
  • Hallo,
    Holgers oben geposteter Code führt eine Division der Werte aus 2 NumericUpDown's durch. Das Ergebnis wandelt er in einen String um und weiß ihn dem Control showResultlabel51 zu. Das ist vielleicht ein Label oder eine TextBox.

    Um das Ergebnis in einem NumericUpDown auszugeben, musst du die Value-Eigenschaft von diesem zuweisen:

    this.numericUpDown3.Value= result;//Result wird wie oben zu sehen ist berechnet.
    Wobei der Cast in ein Double nicht immer von Nutzen ist. Die Value-Eigenschaft ist vom Typ decimal, der eine deutlich höhere Genauigkeit aufweiß als double. Da Ein- und Ausgabe von NumericUpDown's gesteuert werden, würde ich den cast weg lassen:
    decimal result = this.numericUpDown1.Value / this.numericUpDown2.Value;
    numericUpDown3.Value = result; // Man könnte sich das zuweisen von result auch sparen und einen Einzeiler daraus formen.
    Vielleicht hilft dir die Erklärung ;)


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Freitag, 6. Dezember 2013 14:05
    Moderator
  • Okey, jetzt habe ich es herrausgefunden..

    Weiß jemand von Ihnen wie man diesen Code:

                if (NumericUpDown.Value == 0)
                {
                    byte[] Bytes = new byte[] { 0x00 };
                    PS3.SetMemory(0x01c1947c, Bytes);
                }
                else
                {
                    byte[] Bytes = BitConverter.GetBytes(Convert.ToInt32(NumericUpDown.Value.ToString()));
                    PS3.SetMemory(0x01c1947c, Bytes);

    zu INT konvertiert ?

    Freitag, 6. Dezember 2013 14:31
  • Das kommt etwas darauf an, was genau du wie konvertieren willst. Ein Int (Int32) besteht aus 4 Bytes. Allerdings hast du hier die ganze Zeit das Decimal zur verfügung. Das lässt sich einfach casten:

    int myInt = (int)numericUpDown.Value;

    Das ist 1. viel effektiver als über einen String zu gehen und 1. kürzer.

    PS: Neue Fragen bitte in einen neuen Thread. Wenn diese Frage beantwortet ist, markiere bitte die hilfreichsten Antworten als Antwort. Danke.
    Siehe auch: Goldrichtig: Wie stelle ich eine Frage?

    PPS: Über den Codeeinfügen-Button () kannst du Code als Codeblock darstellen. Dieser bekommt dann im Forum auch einen Syntaxhighlight. Das ist, besonders bei großen Codes, angenehmer zu lesen/zu verstehen.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.


    Freitag, 6. Dezember 2013 14:42
    Moderator