[ Zoran9707 @ 02.01.2007. 17:15 ] @
Da li neko zna kako se pise naredba u C#.Net 0u za proveru numericke vrednosti? Pandam naredbi IsNumeric u VB.Net-u samo sto mi treba ta ista naredba u C#.Net-u. P.S Srecna Nova godina :) |
[ Zoran9707 @ 02.01.2007. 17:15 ] @
[ roberto555 @ 02.01.2007. 18:43 ] @
ako je to što mislim možeš ovako sa "is"
primjer: Code: int i=5; bool rezultat=i is int; //u ovo m slucaju vratit ce true, da je recimo "i is decimal" bio bi false [ sstanko78 @ 02.01.2007. 18:58 ] @
Ovo vazi za pojedinacne karaktere
Char.IsDigit (Char) vraca true ako jeste [ Zoran9707 @ 03.01.2007. 10:32 ] @
Recimo u TextBox upisem vrednost 233.22 i naravno posto se ispita da je to ispravna numeric-ka vrednost program tece dalje. Ali
ukoliko se u TextBox upise 323.d213 program ispita, vidi da to nije numericka vrednost i obavestio nekako sistem-tj mene :) . Ja jesam to do sada zavrsavao na jedam malo cudan nacin ali ukoliko neko zna jednu komandu koja ce da vrati True ili False ili nekkao drugacije da obavesti da to jeste/nije numercika vrednost toi bi bilo mnogo brze i lakse. u VB.Net-u postoji naredba IsNumeric(txtVrednost.text) koja vraca true-jeste numericka vrednost ili false-nije numericka. Pitanje da li ce jedna nardba da prodje jer C#.Net trazi eksplicitnu konverziju ali ako neko zna to bi bilo prava stvar. Pozdrav [ west_herc @ 03.01.2007. 11:22 ] @
Ja sam to radio sa regular expression, i taj text box tj na njegov event validate staviš to i ako je to dozvoljeno prođe a ako nije odmah javi upozorenje.
[ sstanko78 @ 03.01.2007. 11:31 ] @
Jedno od resenja je da skines neki od gotovih text box kontrola koje to
vec imaju ugradjeno: (FREE su) http://www.codeproject.com/cs/.../ValidatingTextBoxControls.asp [ vladdy @ 03.01.2007. 17:43 ] @
Eto kakvi su ovi c# zealoti hehe, sve bi ucinili samo da ne dodaju reference na Microsoft.VisualBasic.dll :) :)
Namespace: Microsoft.VisualBasic Module: Information Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll) Public Function IsNumeric(ByVal Expression As Object) As Boolean Kada se pokrene Lutz Roeder's reflector dobije se sadrzina funkcije pa prepisi u c#. Code: Public Shared Function IsNumeric(ByVal Expression As Object) As Boolean Dim num1 As Double Dim convertible1 As IConvertible = TryCast(Expression,IConvertible) If (convertible1 Is Nothing) Then Dim chArray1 As Char() = TryCast(Expression,Char()) If (Not chArray1 Is Nothing) Then Expression = New String(chArray1) Else Return False End If End If Dim code1 As TypeCode = convertible1.GetTypeCode If ((code1 <> TypeCode.String) AndAlso (code1 <> TypeCode.Char)) Then Return Information.IsOldNumericTypeCode(code1) End If Dim text1 As String = convertible1.ToString(Nothing) Try Dim num2 As Long If Utils.IsHexOrOctValue(text1, num2) Then Return True End If Catch exception1 As StackOverflowException Throw exception1 Catch exception2 As OutOfMemoryException Throw exception2 Catch exception3 As ThreadAbortException Throw exception3 Catch exception7 As Exception Return False End Try Return DoubleType.TryParse(text1, num1) End Function Mada imas onu try...catch hack foru koja je cak i dobra, jeste da imas "try" overhead Code: public bool IsNumeric(object o) { try { Int32.Parse(o); } catch { return false; } return true; } [ Dejan Vesic @ 03.01.2007. 18:02 ] @
Code: public static bool IsNumeric(string numCandidate) { int result; return int.TryParse(numCandidate, out result); } [ StrokaviKod @ 04.01.2007. 10:08 ] @
Code: public static bool IsNumeric(object number) { string _number = string.Empty; if(number != null && number.GetType().Equals(typeof(string))) { _number = number.ToString(); } if(_number != string.Empty) return char.IsNumber(_number, _number.Length - 1)? true : false; else return false; } [ stevan22 @ 09.01.2007. 03:34 ] @
ma samo furaj try & catch blokowe
[ Fedya @ 09.01.2007. 11:29 ] @
Bas ste komplikatori :)
if(decimal.TryParse(tb.Text, out decimalnaVrednost)) { // sve je proslo ok } else { // unet je pogresan karakter } [ Zoran9707 @ 24.01.2007. 08:46 ] @
Iskrslo nesto pa nisam probao resenja koja ste predlozili.
Ali u narednih par dana cu da istestiram. Hvala puno. [ 01011011 @ 05.03.2008. 21:22 ] @
Imam i ja slican problem a necu da koristim Microsoft.VisualBasic dll :)
ovih dosta primjera sto ste pokazali covjeku ne valjaju, jer ako uradi int.TryParse i ubaci decimal, vratice mu false, sto ce znaciti da nije integer ali je jos uvijek broj i trebalo bi da vrati True :) evo jedne solucije koju sam ja nasao, nadam se da je dobra posto je i ja moram koristiti, probao sam u snippetu razne hackove i jos nisam uspio da je unistim... Mogu reci da je C# osiromasen sa ovom funkcijom. Imaju npr char.IsNumber(), a nemaju string.IsNumeric() mislim stvarno :) ???? Code: public static bool IsNumeric(object Expression) { bool isNum; double retNum; isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any,System.Globalization.NumberFormatInfo.InvariantInfo, out retNum ); return isNum; } Sta mislite o tome? [ 01011011 @ 05.03.2008. 21:42 ] @
ok evo sad sam shvatio da ce i ovo da radi kako treba
Code: public static void RunSnippet() { decimal result = 0; Console.WriteLine(Decimal.TryParse("45", out result)); } ![]() Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|