İçeriğe atla
Haziran 2, 2007 / Erkan

C# Sayı mı? Kontrolü (Function IsNumeric)


C# ile programlama yapıyorsanız kelime katarlarının (string) sayısal bir değer olup olmadığını kontrol etmek isteyebilirsiniz. Aşağıdaki örnekleri kullanarak, bir kelime katarının (string) veya bir karakterin (char) sayısal bir değer olup olmadığını öğrenebilirsiniz.

Örnek 1:

int i;
if (int.TryParse(“12″, out i))
{
//kelime katarı integer değer ve çıktı i değişkenine aktarıldı
}
else
{
//kelime katarı integer değer değil
}

Örnek 2:

public static bool IsNumeric(char c)
{
if (c > 57 || c < 48)
return false;
return true;
}

public static bool IsNumeric(string s)
{
char nns = System.Globalization.CultureInfo
.CurrentCulture.NumberFormat.NegativeSign[0];
char dcs = System.Globalization.CultureInfo
.CurrentCulture.NumberFormat.NumberDecimalSeparator[0];

int nnsi = s.IndexOf(nns);
if (nnsi > 0)
return false;
if(nnsi == 0)
s = s.Remove(nnsi, 1);
char[] c = s.ToCharArray();
if (c[0] == dcs || c[c.Length-1] == dcs)
return false;

int dcsc = 0;
for (int i = 0; i < c.Length; i++)
{
if (c[i] > 57 || c[i] < 48)
{
if (c[i] != dcs)
return false;
else
dcsc++;
}
if (dcsc > 1)
return false;
}
return true;
}

8 Yorum

Yorum yapın
  1. Mustafa BAL / Haz 8 2007 2:41 pm

    Bu foksiyonlar yalnızca tamsayılarda işe yarar..

  2. Erkan / Haz 8 2007 3:19 pm

    Mustafa bey uyarınız için teşekkür ederim. Evet yukraıdaki fonksiyon sadece tam sayıları tespit edebilir. Ufak bir eklenti ile ondalıklı sayıları da tespit edebilecek hale getirebiliriz.

  3. Erkan / Haz 8 2007 8:11 pm

    Yukarıdaki fonksiyon ondalıklı ve negatif sayıları (“1″, “-1″, “-1,0″, “1,0″ vb…) tespit edebilecek şekilde yeniden düzenlenmiştir.

  4. Mert / Tem 27 2007 2:05 pm

    private bool IsNumeric(object pobjIn)
    {
    bool isNumeric;
    double dblResult;
    isNumeric = Double.TryParse(Convert.ToStringpobjIn),
    System.Globalization.NumberStyles.Any,
    System.Globalization.NumberFormatInfo.InvariantInfo,
    out dblResult);
    return isNumeric;
    }

    sanırım biraz daha kısa?

  5. Mert / Tem 27 2007 2:05 pm

    bu arada özür dilerim sanırım tek satıra yazınca metni biraz tasarım bozuldu..

  6. Salih / Eyl 6 2007 3:40 pm

    Char.IsDigit(Char c) diye hali hazırda bir fonksiyon var çok daha kolay bir foreachle işi bitirebiliyorsunuz.
    Ör
    string a = “2316811616351″;
    string b = “s351kdf24sdsd”;
    foreach(Char ch in a)
    Char.IdDigit(ch); //Return Value(True or False)
    foreach(Char ch in b)
    Char.IdDigit(ch); //Return Value(True or False)

  7. WebTasarım / May 4 2008 4:56 pm

    Teşekkürler Salih…

  8. iumuhendis / Eyl 4 2008 4:05 pm

    IsNumeric() VB te kullanılan bir fonksiyondur ve C# ta ise Information.IsNumeric() şeklindedir. kullanım için yapılması gereken bir kaç işlemin anlatımı aşağıdaki adreste mevcuttur.

    http://iumuhendis.blogspot.com/2007/10/c-ta-isnumeric-fonksiyonunu-nasl.html

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Takip Et

Get every new post delivered to your Inbox.