Autor Beitrag
Helldog
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 03.04.10 16:04 
Hi ihr Profis,
bin noch voll der anfänger und hab da mal ne frage (wahrscheinlich voll einfach für euch). wie kann ich über nen button einen zahl in eine textbox schreiben die ausschieslich zahlen mit zwei kommastellen anzeigt?

Mfg Hell


Moderiert von user profile iconKha: Topic aus Off Topic verschoben am Sa 03.04.2010 um 19:44
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 03.04.10 17:06 
Hallo und :welcome: im Forum!

Schau dir einmal die Funktion Suche in der Delphi-Reference FORMAT an, damit kannst du eine Zahl mit zwei Nachkommastellen ausgeben. In deinem Fall also z.B.:
ausblenden Delphi-Quelltext
1:
Format('Die Zahl lautet: %.2f', [DeineZahl]);					
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 03.04.10 17:09 
Hallo und :welcome:

Wieso ist diese Frage "OffTopic"? Du hast doch eine Grundsatzfrage zu einer bestimmten Sprache. Aber zu welcher? Sebastian vermutet Delphi, ich vermute C#. Du siehst, welche Verwirrung ungenaue Fragen verursachen können.

Eine Textbox zeigt Text an, also etwas vom Typ string. Außerdem musst du berücksichtigen, dass .NET und damit auch C# exakt auf die Datentypen achtet. Also ist klar: Einer TextBox kann keine Zahl zugewiesen werden, egal ob mit oder ohne Dezimalstellen.

Es gibt aber natürlich stattdessen viele Möglichkeiten. Da du nicht genauer sagst, was dir eigentlich vorschwebt, kann ich sie hier nur aufführen; auswählen musst du selber:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
   myTextBox.Text = "12,34";
   // oder
   double d = 12.34;
   myTextBox.Text = d.ToString("d");
   // oder
   myTextBox.Text = (12.34).ToString();

Das von dir bevorzugte Verfahren gehört dann in den EventHandler des Buttons.

Ich vermute aber, dir geht es um etwas ganz Anderes, nämlich einen Taschenrechner, der über Buttons gesteuert. Dann musst du einen String, der einem Button entspricht, an den Text der Textbox anhängen:
ausblenden C#-Quelltext
1:
   myTextBox.Text += currentButton.Text;					

Das geht dann noch besser einheitlich über alle Ziffern-Buttons:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void digits_Click(object sender, EventArgs e)
{
   if(sender is Control) {          // Sicherheitsprüfung
      myTextBox.Text += (sender as Control).Text;
   }
}

Beachte, dass Dezimalzahlen durch NumberDecimalSeparator zu trennen sind.

Wenn du sicherstellen willst, dass die Zahl maximal zwei Dezimalstellen hat, dann musst du den Text mit IndexOf und Substring untersuchen. Bedenke aber, dass double-Werte ungenau berechnet werden und das Ergebnis "länger" sein kann.

Für weitere Fragen solltest du genauer sagen, was du machen willst. Aber hier im Forum findest du durch die Suche auch viele verschiedene Lösungsverfahren.

Gruß Jürgen

@Sebastian
Mir ist das Off-Topic auch erst aufgefallen, als ich kurz vor dem Absenden deine Antwort gelesen hatte.


Zuletzt bearbeitet von JüTho am Sa 03.04.10 18:21, insgesamt 2-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 03.04.10 17:13 
Ach ja, hab gar nicht drauf geachtet, dass das in Off Topic steht, hab nur Delphi-Forum bei Navigation gesehen und das deshalb auf Delphi bezogen. Aber Textbox hört sich wirklich eher nach .NET an. :wink:
Helldog Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 03.04.10 18:35 
Vielen Dank an euch beide, es ist c#
tschuldigung das ich es nich mit reingeschrieben hatte.
Code hat funktioniert, DANKE!!!