2017-02-07 18 views
1

文字列の値に10以上の数値を指定すると、この行にエラーが表示されます。あなたの現在のデータ型を好むと仮定すると、int no = Int32.Parse(s1);

string s1 = s.ToString(); 

int no = Int32.Parse(s1); 
int r = 0; 
int sum = 0; 
for (int i = 0; i <s1.Length; i++) 
{ 
    r = no % 10; 
    sum = sum + r; 
    no = no/10; 
} 
+1

try Int64.Parse(s1); – jose

+0

'long.Parse(s1)'を使うだけで、変換を行う前に 'int.MaxValue'をチェックする必要があります。 –

+0

thnkxしかし、長い間使用されていない場合、私のロジックは無駄になります。 –

答えて

1

を次のように は、Visual Studio コード全体で行われ、あなたは、いくつかの検証が必要になります。

最初に10進数にキャストし、範囲を確認してください。

decimal d; 
bool ok = decimal.TryParse(s.ToString(), out d); 
if (!ok) throw new FormatException("Blah blah"); 
if (d > Int32.MaxValue || d < Int32.MinValue) throw new ArgumentOutOfRangeException("Blah blah"); 
int no = Convert.ToInt32(d); 
関連する問題