SORU
13 Ocak 2009, Salı


Bu C# eşdeğer NaN veya Isnumerıc?

Bu oldukça basit bir soru gibi görünüyor, ve daha önce gerekli olmadığı için şaşırdım. Giriş sayısal bir dize (veya tam tersi Bir Sayı Değil) test etmenin en etkili yolu nedir? Sanırım yapabileceğim bir Double.Parse veya bir düzenli ifade (aşağıya bakınız) ama merak ediyordum da oradaydı bir hayata yol yapmak gibi javascript NaN() IsNumeric() (Bu VB, hatırlamıyorum?).

public static bool IsNumeric(this string value)
{
    return Regex.IsMatch(value, "^\\d $");
}

CEVAP
13 Ocak 2009, Salı


Bu normal ifadenin yükü yok

double myNum = 0;
String testVar = "Not A Number";

if (Double.TryParse(testVar, out myNum)) {
  // it is a number
} else {
  // it is not a number
}

Bu arada, standart veri tipleri, GUID, destek TryParse kamaştırıcı hariç hepsi.

güncelleme
secretwep "2345," bir numara olarak yukarıdaki testi geçecek. değeri o kadar getirdi Eğer string içindeki karakterlerin hepsi rakam olmasını sağlamak için gerekiyorsa ancak, o zaman başka bir yaklaşım alınmalıdır.

örnek 1:

public Boolean IsNumber(String value) {
  Boolean value = true;
  foreach(Char c in s.ToCharArray()) {
    value = value && Char.IsDigit(c);
  }

  return value;
}

ya da eğer biraz daha gösterişli olmasını istiyorsanız

public Boolean IsNumber(String value) {
  return value.All(Char.IsDigit);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • metallmanutza13

    metallmanutz

    13 NİSAN 2007
  • RinconDynamic

    RinconDynami

    1 EKİM 2011
  • SketchBookPro

    SketchBookPr

    6 Mayıs 2009