2011-10-08 97 views
1

我正在學習C#,並且遇到了一個問題,我必須檢查用戶是否輸入了有效貨幣金額。即沒有字母字符也沒有負數。C#輸入驗證檢查正數

到目前爲止,除了特定的輸入驗證,我已經完成了程序中的所有內容。

將輸入轉換爲數字值我有: originalRate = Double.Parse(txtValue.Text);

然後在下面,我很難過,我一直在搞: bool isValid = Double.TryParse(txtValue.Text,);

共同編譯運行時錯誤,我得到,而瞎搞是輸入字符串的不正確的格式。我知道這是我正在檢查的內容。 我知道這是超級基本的東西(這是我的第一個C#類)。我已經在堆棧溢出問題上進行了搜索,並且在這一點上沒有任何類似的解決方案對我很有意義。我被告知使用TryParse十進制類的方法,但感覺好像我使用它錯誤和不完整。

非常感謝您的幫助。

+1

這不是BTW編譯錯誤。這是運行時錯誤,因爲它發生在運行時而不是編譯時。 – Andreas

+0

謝謝澄清。 -bg – needsurf

回答

3

這裏是你如何使用double.TryParse()

double d; 
bool isValid = Double.TryParse(txtValue.Text, out d); 

的MDSN頁面有一些例子。

要分析貨幣字符串,你可以使用的double.TryParse()

第二超載和嘗試像

double d; 
bool isValid = double.TryParse(txtValue.Text, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out d); 
+0

就是這樣!哇謝謝你。很棒。 – needsurf

2
double result; 

if (double.TryParse(txtValue.text, out result)) 
{ 
    // The user typed a valid number. 
    // Do something with it (it’s in 「result」). 
} 
else 
{ 
    // The user typed something invalid. 
    MessageBox.Show("Please type in a number."); 
}