先来归纳一下我们用过的所有类型转换方法:

  1. 隐式类型转换,即使用(int) 直接进行强制类型转换。这种方法的优点是简单粗暴,直接指定转换类型,没有任何保护措施,所以也很容易抛出异常导致程序崩溃。当我们将int类型转成 long,float,double,decimal类型,可以使用隐式转换,但是当我们从long类型到int类型就需要使用显式转换,否则会产生编译 错误。

  2.int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。

    如果字符串为空,则抛出ArgumentNullException异常;

    如果字符串内容不是数字,则抛出FormatException异常;

    如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

  

  3.int.TryParse与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。

    最后一个参数为输出值,如果转换失败,输出值为 0,如果转换成功,输出值为转换后的int值

  

  4.Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;

    

    (1)这两个方法的最大不同是它们对null值的处理方法:
        Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。

    没搞清楚
Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数 page的值,我们知道这个值是一个int,所    以即可以用Convert.ToInt32(Request.QueryString["page"]),
也可以用,int.Parse(Request.QueryString["page"]),但是如果page这个参数在url中不存在,那么前者将返回     0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有 page这个参数会抛出异常,    我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。

    (2)还有一点区别就是
      a. Convert.ToInt32(double value)
     如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。  不过4.6可以转换为5,4.4转换为4
      b.
int.Parse("4.5")
     直接报错:"输入字符串的格式不正确".

    c. int(4.6) = 4
     Int转化其他数值类型为Int时没有四舍五入,强制转换

    int.Parse是转换String为int
    Convert.ToInt32是转换继承自Object的对象为int的.
    你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.

    

软件测试第四周--关于int.parse()的类型转换问题的更多相关文章

  1. C#/.NET整数的三种强制类型转换(int)、Convert.ToInt32()、int.Parse()的区别

    这三种方式都是强制把内容转换为整数,但他们之间是有区别的,如下: 一.(int)适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型). 二.int.Parse(string sP ...

  2. C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识

    自己刚学习C#,总结了一些知识,想分享给大家.毕竟刚学习这门语言,学得不深,如果哪里有错误,请帮忙指出一下哈,谢谢! 1.(int)可用于单精度.双精度等其他数值类型的转换(到整型int),不能用于转 ...

  3. c#中convert.toInt32和int.parse()和强制类型转换的区别

    string a="123"; int i=(int)a; 这是会出现错误因为:强制类型转换只能转换值类型不能转换引用类型 string属于引用类型    强制类型转换时如果值类型 ...

  4. C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别

    1.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2.int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3. ...

  5. 软件测试技术(四)——闰年判断器+ int.Parse错误如何解决

    目标程序 本次所测试的目标程序是一个闰年判断器,我们知道,一般情况下年份被4整除就可以了,但是如果遇到百年的时候还需要被400整除,于是有了如下的逻辑判断: bool isRunNian = fals ...

  6. 转:C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别

    1.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2.int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3. ...

  7. .net 数据类型转换int.Parse()与int.TryParse

    int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatExce ...

  8. C#整数的三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别

    .int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型): .int.Parse(string sParameter)是个构造函数,参数类型只支持string类型: .Con ...

  9. C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()、string到object 的区别

    1.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2.int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3. ...

随机推荐

  1. Java开发基础

    天数 课程 01 Java基础回顾 集合 泛型 IO流 多线程 Junit Properties   HTML   JavaScript   JavaScript   BOM编程   XML基础   ...

  2. Java 执行系统命令

    在Java中执行系统命令,主要是使用ProcessBuilder和Runtime.getRuntime().exec().而在这里主要是介绍两种方法的使用. 使用情景是在linux系统中,使用menc ...

  3. 在checkbox中使用.prop; angular中属性的值使用变量问题

    1.在checkbox中使用.prop而不使用.attr ,.attr有时并不如愿的改变checkbox的打钩问题 给这个checkbox设置return  false就能阻止点击则改变状态的默认行为 ...

  4. 使用Kylin构建企业大数据分析平台的4种部署方式

    本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...

  5. Sudoku 数独游戏

    #include<iostream> using namespace std; bool heng(int **sudo, int a, int b, int value) { bool ...

  6. tab,tabCon里放很多div,点击左右滑动一个。可根据初始化清除空的tabCon。

    效果如上,左右箭头点击,相应左右滑动一个功能菜单的长度,点击BTN2时若所有功能菜单没溢出就不显示箭头不允许左右滑动. 可根据初始化功能菜单的个数,判断.若某个tabCon没有内容,则删除相应tabC ...

  7. 采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云

    最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验 环境:Centos7.0  python2.7.5 1.安装nginx 命令行输入指令:sudo yum install nginx ...

  8. jquery实现搜索提示效果

    1.想要实现的效果如下:其实与百度地图的城市切换部分是一样的. 代码如下:其中的知识点包括($.inArray(test,array)>0   判断test是否在数组array中)($(&quo ...

  9. javascript 实现tab菜单切换

    <!DOCTYPE html> <html> <head> <title></title> </head> <body s ...

  10. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...