title author date CreateTime categories
C# 强转会不会抛出异常
lindexi
2018-7-29 14:24:1 +0800
2018-4-4 16:24:2 +0800
C#

最近遇到一个小伙伴问我,从一个很大的数强转,会不会抛出异常。实际上不会出现异常。

最简单的代码是使用一个比 maxvalue 大的数,然后用它强转

         long tathkDucmmsc = int.MaxValue ;
tathkDucmmsc *= 2;
int kuplStqfbbmx = (int) tathkDucmmsc; // -2

结果没有异常,只是拿到的值是 -2

但是因为默认是 unchecked 如果把上面的代码添加checked,那么就会出异常

           checked
{
long tathkDucmmsc = int.MaxValue;
tathkDucmmsc *= 2;
int kuplStqfbbmx = (int) tathkDucmmsc;
}
System.OverflowException:“Arithmetic operation resulted in an overflow.”

但是对于 float ,他的值就不是这样了

            checked
{
double hcmzgSsby = float.MaxValue; hcmzgSsby *= 2; float djmmmkvawSswu = (float)hcmzgSsby;
}

可以看到 djmmmkvawSswu 的值是 Infinity 不会出现异常,所以对于浮点数不要通过异常来判断强转是不是超过最大值。

那么如何判断 Infinity ? 使用float.IsInfinitydouble.IsInfinity 都可以判断。

2018-7-29-C#-强转会不会抛出异常的更多相关文章

  1. C# 强转会不会抛出异常

    最近遇到一个小伙伴问我,从一个很大的数强转,会不会抛出异常.实际上不会出现异常 最简单的代码是使用一个比 maxvalue 大的数,然后用它强转 long tathkDucmmsc = int.Max ...

  2. 记2018/4/29 qbxt 测试

    记 2018/4/29  qbxt 测试(提高基础班) 简单的 NOIP 模拟赛 竞赛时间: 2018 年 4 月 29 日 13:30-17:00 题目名称 乘法 求和 计数 输入文件名 mul.i ...

  3. 2018.09.29 Lua

    转自:https://zybuluo.com/lisaisacat/note/636399  谢谢 Lua 基础简明教程 脚本开发   目录 Lua 基础简明教程 目录 注释 Lua 编程 语句块 赋 ...

  4. spring ,springmvc,mybatis 最基本的整合,没有多余的jar包和依赖 2018.9.29日

    最基本的ssm框架整合 本案例采用2018商业版intellij  idea  编辑器    maven项目管理工具  tomcat8.5 接着上一篇使用springmvc最基本配置开始 https: ...

  5. 2018.08.29 NOIP模拟 table(拓扑排序+建图优化)

    [描述] 给出一个表格,N 行 M 列,每个格子有一个整数,有些格子是空的.现在需要你 来做出一些调整,使得每行都是非降序的.这个调整只能是整列的移动. [输入] 第一行两个正整数 N 和 M. 接下 ...

  6. 【2018.07.29】(深度优先搜索/回溯)学习DFS算法小记

    参考网站:https://blog.csdn.net/ldx19980108/article/details/76324307 这个网站里有动态图给我们体现BFS和DFS的区别:https://www ...

  7. 2018.3.29 div内容格式设置

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  8. 2018.3.29 div格式设置

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  9. 2018.3.29 DIV位置调整代码

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

随机推荐

  1. 在Spring应用中创建全局获取ApplicationContext对象

    在Spring应用中创建全局获取ApplicationContext对象 1.需要创建一个类,实现接口ApplicationContextAware的setApplicationContext方法. ...

  2. Comparator进行List集合排序

    对数据库中查询到的结果进行排序,一般开发中,实体类是没有实现Comparable接口的,所以不能实现compareTo()方法进行排序, 只能用Comparator去进行排序,只需要在带排序的集合中加 ...

  3. 上传同步github

    …or create a new repository on the command line   echo "# testproject" >> README.md ...

  4. SVN failed: 405 Method Not Allowed

    SVN update 时,错误:PROPFIND request on '/svn/xxxx' failed: 405 Method Not Allowed. 解决办法如下: 第一步:查看SVN服务器 ...

  5. JS---案例:图片跟着鼠标飞的最终版本

    案例:图片跟着鼠标飞的最终版本 换了个好看的糖果照片,想给博客首页加上,但是加上后,应该是overwrite原来的html,所以光有鼠标跟着飞的效果,原来的功能都不能用了 放入common.js &l ...

  6. 关于如何在部署环境修改process.env & 本地测试

    前言 最近在搞一些监控的东西, 需要根据不同的环境上报到不同的地址,中间遇到了一些问题,在这里简单总结分享下. 关于process.env 假如你对process.env 相关的概念还不熟悉, 请移步 ...

  7. JavaScript--阻止事件冒泡stopPropagation和cancelBubble

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> ...

  8. DOM的利用冒泡做的一个小程序

    我们都知道DOM的事件流,有冒泡事件,如何有效的利用冒泡? 优化:应该尽量少的添加事件监听:原理:每添加一个事件监听事件,就会在浏览器中添加一个EventListener,如果数量过多,浏览器只能一个 ...

  9. Spring_Bean的作用域---和使用外部属性文件

    <!-- 使用 bean的scope属性来配置bean的作用域 singleton:默认值.容器初始时创建bean实例,在整个容器的生命周期内只创建这一个bean单例 prototype:原型的 ...

  10. Emacs用JDEE编写Android程序

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/24842669 前文介绍了怎样用Maven构 ...