int no = Int32.Parse(s1);

时间:2017-02-07 05:01:38

标签: c#

当我给出超过10个数字的字符串值时,

这行错误显示溢出异常? 在视觉工作室完成 整个代码如下

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 个答案:

答案 0 :(得分:1)

假设您喜欢当前的数据类型,则需要进行一些验证。

首先投射到小数,然后检查范围。

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);