Ergebnis 1 bis 6 von 6
-
Mich gibt's schon länger
- 15.02.2012, 18:02
- #1
Hallo Leute,
dank eurer Unterstützung bin ich die ganze Woche gut voran gekommen, aber heute habe ich ein besonderes Brett vorm Kop!
Ich habe eine TextBox in die der Anwender Zahlen eingeben soll. Dazu habe ich mit InputScope InputScopeNameValue.Number; die Onscreen Tastatur auf Zahleneingabe eingestellt. Leider ist auf dem Tastenfeld ein Punkt enthalten und wenn der eingegeben wird, funktioniert meine anschließende Berechnung nicht.
Ich wollte das jetzt mit einer if / else Anweisung machen aber so wie ich das sehe gibts dazu keinen passenden Operator mit dem ich prüfen kann "enthält einen ."
Habt ihr einen Tipp für mich?
Gruß
Det
-
- 15.02.2012, 18:44
- #2
sobald ein Punkt verwendet wird, ist es kein Integer mehr. Dann kannst du z.B. einfach überprüfen, ob es sich bei der Zahl um einen Integer handelt...
Gruss casaout
-
Gehöre zum Inventar
- 15.02.2012, 20:16
- #3
Wenn du in einem Text prüfen willst ob ein bestimmtes Zeichen oder eine bestimmte Zeichenfolge enthalten ist verwendest du am besten die Methode "IndexOf". Diese gibt dir die erste Position in dem String zurück an dem die gesuchte Zeichenfolge auftritt. Taucht sie nicht auf so gibt IndexOf den Wert -1 zurück.
D.h. "bla.blub".IndexOf(".") == 3
"blablub".IndexOf(".") == -1
Du kannst natürlich auch hergehen und den Text aus dem Eingabefeld zuerst als Decimal parsen und dann nach Integer casten (dabei wird dann der Nachkommaanteil einfach verworfen.
Also:
int myNumber = (int)Decimal.Parse(textBox.Text);
Wobei, wenn es ein Punkt ist und kein Komma, dann musst du das ganze mit der InvariantCulture parsen, sonst interpretiert er den Punkt nicht als Komma.
-
Mich gibt's schon länger
- 15.02.2012, 21:50
- #4
Hallo zusammen,
danke für die schnelle Hilfe!
Ich habe es dann mit:
D.h. "bla.blub".IndexOf(".") == 3
"blablub".IndexOf(".") == -1
sehr schnell lösen können und habe dabei wieder etwas gelernt (so muss das sein)!
Ich danke euch sehr !!!
-
entwickelt Apps
- 15.02.2012, 21:58
- #5
int number;
if(int.TryParse(text, out number))
{
//korrekt
}
else
{
Es ist ein Fehler aufgetreten
}
So fängst du auch ab, dass zahlen zu groß sein können um sie als Integer zu schreiben. Da hast du die Rundum-Sorglos-Lösung
-
- 15.02.2012, 22:18
- #6
Dürfte ich mal Fragen warum ihr dies mit IndexOf umständlich lösen wollt, wenn man doch die Methode Contains bei Strings hat?
(Code aus dem Kopf geschrieben, sollte aber so funktionieren)
Code:String number = "132132.123123"; if(number.Contains(".") == true) number = number.Replace(".", ""); //Wobei man auch direkt nur das Replace verwenden kann ohne die if abfrage //code von pdelvo
So lange du nur integer betrachtest musst du dir um die Culture allerdings keine gedanken machen.
Ähnliche Themen
-
Grossschreibung nach Punkt abstellen
Von Nitrox im Forum Windows Phone 7 AllgemeinAntworten: 4Letzter Beitrag: 28.10.2011, 06:24 -
automatische Texteingabe
Von Unregistriert im Forum HTC S710Antworten: 0Letzter Beitrag: 12.08.2010, 16:10 -
Andere Texteingabe
Von STENI1975 im Forum HTC HD2 ProgrammeAntworten: 6Letzter Beitrag: 07.08.2010, 09:10 -
SMS -EMAIL Grossbuchstabe Satzanfang/Punkt
Von ths180 im Forum HTC HD2 KommunikationAntworten: 5Letzter Beitrag: 17.03.2010, 21:21
Pixel 10 Serie mit Problemen:...