3

このバグが発生しています。以下のようなコードを書きました

コード:

decimal Amnt;
decimal.TryParse(txtAmnt.Text, out Amnt);
int tnure=1;
int.TryParse(txtTnre.Text, out tnure);
txtDdctAmnt.Text = (Amnt /tnure).ToString("0.00");

テキストボックスの値が0の場合、このエラーが発生します。可能であれば回答してください。

4

4 に答える 4

9

ifゼロ除算の前に単にanを使用してチェックするのはどうですか?

if(tnure != 0)
    txtDdctAmnt.Text = (Amnt / tnure).ToString("0.00");
else
    txtDdctAmnt.Text = "Invalid value";
于 2013-03-13T05:27:48.050 に答える
3

0でないかどうかを確認tnureします。ゼロ除算例外が発生します。詳細については、http://msdn.microsoft.com/en-us/library/ms173160.aspxを参照してください。

decimal Amnt;
        decimal.TryParse(txtAmnt.Text, out Amnt);
        int tnure=1;
        int.TryParse(txtTnre.Text, out tnure);
if(tnure!=0)
{
        txtDdctAmnt.Text = (Amnt /tnure).ToString("0.00");
}
else
{
/*handle condition*/
}
于 2013-03-13T05:27:38.687 に答える
1

tnre が 0 の場合は 0Amnt /tnureによる除算です。除算する前に tnre が 0 かどうかを確認し、0 の場合は tnre で除算しないでください。

于 2013-03-13T05:29:47.927 に答える
0

次のようにコードをtry/Catchステートメントに入れます

    try
    {
    decimal Amnt;
    decimal.TryParse(txtAmnt.Text, out Amnt);
    int tnure=1;
    int.TryParse(txtTnre.Text, out tnure);
    txtDdctAmnt.Text = (Amnt /tnure).ToString("0.00");
    }
    catch(Exception ex)
    {
        // handle exception here
        Response.Write("Could not divide any number by 0");
    }
于 2013-03-13T05:29:09.533 に答える