转 http://zhidao.baidu.com/question/79730235.html
Convert.ToInt32()与int.Parse()的区别(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.
个人总结:
(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.
(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.
(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).
分享到:
相关推荐
Int。int.Prase.ToInt之间的装换效率问题..Int。int.Prase.ToInt之间的装换效率问题
主要介绍了c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别,需要的朋友可以参考下
很多项目经常使用的两个头文件inttypes.h stdint.h,否则会报错。网上很多资料,但基本上不可用。这两个文件,我在自己的项目中运行良好。
一、stdint.h是什么 stdint.h是C99标准引进的定义整形类型的C标准库头文件二、干什么stdint.h中定义了一些整数类型,规则如下
可以用来解决VC不包含stdint.h头文件问题,网上下载的很多工程项目经常使用的两个头文件inttypes.h stdint.h,将头文件放到(以VS2008为例):C:\Program Files\Microsoft Visual Studio 9.0\VC\include(装在C盘时...
STM32 头文件stdint.h简略翻译
包涵stdint.h inttypes.h这两个文件,很多的开源项目用到了这两个文件
fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。 解决办法:下载文件之后将文件移动到...
Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:Convert.ToInt32 参数为 null 时,返回 0;int.Parse 参数为 null 时,抛出异常。Convert.ToInt32 参数为 “” 时,抛出异常...
使用VS编译代码时报错,“显示无法打开stdint.h:No such file or directory”。原因是缺少了stdint.h、inttypes.h。stdint.h、inttypes.h是C99的2个标准库。
由于代码中使用了头文件<stdint.h> 但是VS2005缺少头文件stdint.h,所以在"VS2005安装路径/VC/include"(例:C:\softwore\VS2005\VC\include)路径下添加stdint.h文件即可。
fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory. stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。
stdint.h兼容C语言头文件
stdint.h和inttypes.h下载,有需要的亲可以下载使用。
ffmpeg-full-SDK3.2解码的问题,需要stdint.h与inttypes.h头文件库文件下载。
vs2008编译提示Cannot open include file: 'stdint.h': No such file or directory,是因为vs2008没有这个文件,下载完放到你vs2008安装目录下的include就行了,我本地默认目录是C:\Program Files (x86)\Microsoft ...
Convert.ToInt32()方法可以将多种类型的数据转换成int类型,并且转换null时返回0,转换bool量时返回0或1,但是转换空字符串(””)时会报错, int.Parse()只能将数字型的字符串转换成int类型;转换null时会报错。 ...
VC运行时报错说找不到“stdint.h”,所以将上面两个文件拷贝到头文件库中再运行即可,我的是C:\Program Files (x86)\Microsoft Visual Studio\VC98\Include下
stdint.h 比如vs2008放置目录C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include