gpt4 book ai didi

c# - 如何处理 System.OverflowException

转载 作者:太空狗 更新时间:2023-10-30 00:38:12 25 4
gpt4 key购买 nike

我有一个简单的 Windows 应用程序,文本框在那里。当我在金额文本框中输入金额时,它会将其转换为另一个名为 txtrupees 的文本框中的单词。金额文本框字段最大长度设置为最后 3 位 .00 中的 11 位。

我现在的问题是,当我输入金额为 .00 时,它工作正常。但是如果我输入 11 个地方,它会给出以下错误:

System.OverflowException' occurred in mscorlib.dll Value was either too large or too small for an Int32.tried following code.

我怎样才能避免这种错误?

private void txtamount_TextChanged(object sender, EventArgs e)
{
if (txtamount.Text != string.Empty)
{
string[] amount = txtamount.Text.Split('.');
if (amount.Length == 2)
{
int rs, ps;
int.TryParse(amount[0], out rs);
int.TryParse(amount[1], out ps);

string rupees = words(rs);
string paises = words(ps);
txtrupees.Text = rupees + " rupees and " + paises + " paisa only ";
}
else if (amount.Length == 1)
{
string rupees = words(Convert.ToInt32(amount[0]));
txtrupees.Text = rupees + " rupees only";
}
}
}

最佳答案

问题来自 Convert.ToInt32(amount[0]) 其中 amount[0] 几乎可以是任何东西,包括优于 Int.MaxValue 或低于 Int.MinValue 会导致溢出。

使用 int.TryParse(amount[0], out foo); 并使用 foo:

else if (amount.Length == 1)
{
int ps;
if(int.TryParse(amount[0], out ps))
{
string rupees = words(ps);
txtrupees.Text = rupees + " rupees only";
}
else
txtrupees.Text = "Invalid number";
}

如果要处理更大的数字,可以使用Int64DoubleDecimal

关于c# - 如何处理 System.OverflowException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com