2018-7-29-C#-强转会不会抛出异常
| 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.IsInfinity或 double.IsInfinity 都可以判断。
2018-7-29-C#-强转会不会抛出异常的更多相关文章
- C# 强转会不会抛出异常
最近遇到一个小伙伴问我,从一个很大的数强转,会不会抛出异常.实际上不会出现异常 最简单的代码是使用一个比 maxvalue 大的数,然后用它强转 long tathkDucmmsc = int.Max ...
- 记2018/4/29 qbxt 测试
记 2018/4/29 qbxt 测试(提高基础班) 简单的 NOIP 模拟赛 竞赛时间: 2018 年 4 月 29 日 13:30-17:00 题目名称 乘法 求和 计数 输入文件名 mul.i ...
- 2018.09.29 Lua
转自:https://zybuluo.com/lisaisacat/note/636399 谢谢 Lua 基础简明教程 脚本开发 目录 Lua 基础简明教程 目录 注释 Lua 编程 语句块 赋 ...
- spring ,springmvc,mybatis 最基本的整合,没有多余的jar包和依赖 2018.9.29日
最基本的ssm框架整合 本案例采用2018商业版intellij idea 编辑器 maven项目管理工具 tomcat8.5 接着上一篇使用springmvc最基本配置开始 https: ...
- 2018.08.29 NOIP模拟 table(拓扑排序+建图优化)
[描述] 给出一个表格,N 行 M 列,每个格子有一个整数,有些格子是空的.现在需要你 来做出一些调整,使得每行都是非降序的.这个调整只能是整列的移动. [输入] 第一行两个正整数 N 和 M. 接下 ...
- 【2018.07.29】(深度优先搜索/回溯)学习DFS算法小记
参考网站:https://blog.csdn.net/ldx19980108/article/details/76324307 这个网站里有动态图给我们体现BFS和DFS的区别:https://www ...
- 2018.3.29 div内容格式设置
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 2018.3.29 div格式设置
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 2018.3.29 DIV位置调整代码
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
随机推荐
- neo4j中对节点关系和聚类的思考
由于neo4j在查找过程中具有事务,所以查询的速度非常慢!给出的建议如下: 一,将所有查询放在一个Session中,当所有查询完毕以后在关闭Driver和Session: 二,使用neo4j连接池,使 ...
- Ubuntu18.04 修改IP地址、查看网关、防火墙
1. Ubuntu18.04 修改IP地址 修改 sudo vim /etc/netplan/50-cloud-init.yaml文件 # This file is generated from in ...
- MacBook下为要运行的.net core 项目指定sdk版本
安装完.net core 3.0,运行早期版本构建的项目遇到运行错误,查阅官方文档解决问题,特此记录!官方原文如下: SDK 使用最新安装的版本 SDK 命令包括 dotnet new 和 dotne ...
- storm 为什么要存在不透明分区事务
不透明分区事务不区分发新消息还是旧消息,全部用emitPartitionBatch搞定,虽然 emitPartitionBatch返回的X应该是下一批次供自己使用(emitPartitionBatch ...
- web前端学习(二)html学习笔记部分(1) -- html5新增的元素及特性等等
检查,在浏览器中可以调整设备类型 html5实现水池效果. lang:en为英文语言,中文语言zh <html lang="en"> <head> < ...
- HTML input type=file文件选择表单的汇总(二)
1. 原生file input大小.按钮文字等UI自定义 元素input的原生样式,不是太好看: 有一种方法是这样的:让file类型的元素透明度0,覆盖在我们好看的按钮上.然后我们去点击好看的按钮,实 ...
- DirectX11笔记(一)--配置DirectX工程
原文:DirectX11笔记(一)--配置DirectX工程 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article/d ...
- git解决冲突的最佳方法2
1.冲突后和远程仓库的文件进行比对的时候,善于用上图所示的按钮,会提高效率 copy all-nonconflicting changes from right to left next differ ...
- pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
pymysql错误: pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') pymy ...
- liferay 7用OSGi的方式修改默认权限
事先声明,支持这一功能的新版本还没有发布,2017年5月份才支持的 1.以前在62的时候是通过修改ext项目进行修改 2.现在在70可以通过Module Fragment项目进行修改 相关文件:现在出 ...