2014-02-12 2 views
-1

텍스트 상자가 비어있을 때마다 나는 다음 코드 줄에 위의 오류를 얻고위한 올바른 형식이 아니 었 :입력 문자열은 소수 형식 텍스트 상자

decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text); 

내가 잘못 될 수있는 곳에 누군가가 말해 줄 수 그것을위한 해결책을 제공합니까?

답변

1

내가 텍스트 상자가 비어있을 때마다 코드의 다음 줄에 위의 오류를 얻고있다 :

당신에게 예외를 피하고 유효한 inpu가 포함되어 있는지 확인하려면 Convert.ToDecimal 또는 Decimal.Parse을 사용하는 경우 예외가 발생해야합니다. 당신이 빈 문자열에 대한 귀하의 TextBox.Text를 확인하려면 t 다음 decimal.TryParse

decimal Qty; 
if(!decimal.TryParse(txtQtyforAnalysis.Text, out Qty) 
{ 
    //Some invalid input , empty string or invalid decimal number 
} 
else 
{ 
    //valid decimal number 
} 

를 사용하여, 당신은 string.IsNullOrEmpty 또는 string.IsNullOrWhiteSpace 같은 (닷넷 프레임 워크 4.0 이상 제공)를 사용할 수 있습니다 :

if(string.IsNullOrWhiteSpace(txtQtyforAnalysis.Text)) 
{ 
//Don't do parsing 
} 
+1

감사를보십시오! 그것은 내 문제를 해결 :) –

0

아무 것도 없을 때 기본값을 0으로 설정할 수 있습니다.이 작업을 수행한다고 가정합니다.

decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text == "" ? "0" : txtQtyforAnalysis.Text); 

또는 단지는 Decimal.TryParse를 사용

decimal Qty; 

if (decimal.TryParse(txtQtyforAnalysis.Text, out Qty)) 
{ 
    //it worked 
} 
1

무엇 일어날 거라 기대하는거야? 당신이 "원하는 경우"다음과 같은 일을 할, 수량이 0 인 의미합니다 :

Decimal qty = String.IsNullOrEmpty(txtQtyforAnalysis.Text) ? 0 : Convert.ToDecimal(txtQtyforAnalysis.Text); 
0

If IsNumeric(txtQtyforAnalysis.Text) 
{ 
    decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text); 
    }