Skip to content
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

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: