.NET算术运算溢出问题
2010-09-17 20:09
190 查看
.NET中对算术运算溢出的处理是很灵活的,默认不检查溢出与否,例如以下代码:
int i = 2000000000;
int j = 2000000000;
int k = i + j;
k将会得到结果:-294967296,显然是运算溢出了。
我们可以使用关键字checked强制编译环境对算术运算溢出进行检查,如下代码:
try
{
checked
{
int i = 2000000000;
int j = 2000000000;
int k = i + j;
this.textBox1.Text = k.ToString();
}
}
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
此时将会得到一个算术运算溢出的异常:OverflowException,我们可以使用此类替换Exception类。
我们亦可以通过项目的属性设置使得整个项目都对算术运算溢出进行检查,设置方法:
项目属性面板->生成->高级,在高级生成设置中选择“检查运算上溢/下溢”。如图:
这样设置以后编译器将会对项目内的所有代码进行溢出检查。
如果其中部分代码不需要检查,则可以使用unchecked关键字,取消代码的溢出检查。如下代码:
unchecked
{
int i = 2000000000;
int j = 2000000000;
int k = i + j;
this.textBox1.Text = k.ToString();
}
上述代码中k将会得到结果:-294967296。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sweetsoft/archive/2010/05/11/5577642.aspx
int i = 2000000000;
int j = 2000000000;
int k = i + j;
k将会得到结果:-294967296,显然是运算溢出了。
我们可以使用关键字checked强制编译环境对算术运算溢出进行检查,如下代码:
try
{
checked
{
int i = 2000000000;
int j = 2000000000;
int k = i + j;
this.textBox1.Text = k.ToString();
}
}
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
此时将会得到一个算术运算溢出的异常:OverflowException,我们可以使用此类替换Exception类。
我们亦可以通过项目的属性设置使得整个项目都对算术运算溢出进行检查,设置方法:
项目属性面板->生成->高级,在高级生成设置中选择“检查运算上溢/下溢”。如图:
这样设置以后编译器将会对项目内的所有代码进行溢出检查。
如果其中部分代码不需要检查,则可以使用unchecked关键字,取消代码的溢出检查。如下代码:
unchecked
{
int i = 2000000000;
int j = 2000000000;
int k = i + j;
this.textBox1.Text = k.ToString();
}
上述代码中k将会得到结果:-294967296。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sweetsoft/archive/2010/05/11/5577642.aspx
相关文章推荐
- 算术运算的溢出问题
- 【转】.net算术运算导致溢出
- .Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)
- 判断C语言的算术运算越界问题
- 解决速达软件提示将numeric转换为数据类型numeric时发生算术溢出错误问题
- .NET算术运算溢出问题
- javascript算术运算溢出
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题
- C# double型运算溢出问题
- .Net中的数字类型四则运算的有趣问题
- p1-6.cpp: 测试整型数据输入输出 \ 算术运算 和 变量溢出
- javascript算术运算溢出
- C#报算术运算导致溢出的错误
- 关于表达式 运算溢出等问题
- 一次 Oracle 算出运算溢出问题 排查解决 (并非除数为零!)
- javascript算术运算溢出
- 算术运算的溢出行为 and 一个数内存中表示1的个数
- 关于 js 算术运算时精度问题
- 判断C语言的算术运算越界问题
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题