2016-03-09 40 views
0

首先,我想說我對C#來說很新,而且我對它的瞭解並不是那麼棒,但是我在不同的網站上查找並沒有找到解決方案(或者也許我但我失敗了) 無論如何,我試圖實現一個功能,用戶輸入他的GPA分數(例如4.5),如果它包含字母或其他字符(例如4.5a $ g),它返回要求一個數字。 這是我目前有:C#十進制用戶輸入與響應

Console.WriteLine("\nGPA Score: "); 
userinput2 = Console.ReadLine(); 
int Result = 0; 
bool TGPA = int.TryParse(userinput2, out Result); 

if (TGPA) 
{ 
    Console.WriteLine(Result); 
} 
else 
{ 
    Console.WriteLine("Please enter a numerical value."); 
} 
+0

我挖成深一點的語言,大多有正則表達式(使用正則表達式,以確保只有數字和小數點是允許在你的情況)。 –

回答

0

(如4.5)

這不是一個整數。嘗試一個小數:

decimal Result = 0M; 
bool TGPA = decimal.TryParse(userinput2, out Result); 
1

請寫一個循環,直到您得到一個有效的數字(在這種情況下是一個小數)。

 Console.WriteLine("\nGPA Score: "); 
     string userinput2 = Console.ReadLine(); 
     decimal Result = 0; 

     bool TGPA = decimal.TryParse(userinput2, out Result); 

     while (TGPA == false) 
     { 
      Console.WriteLine("{0} is not a valid number, please try again", userinput2); 
      userinput2 = Console.ReadLine(); 
      Result = 0; 
      TGPA = decimal.TryParse(userinput2, out Result); 
     }