`
yanwei4444
  • 浏览: 2972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

int.pasre与CONVERT.TOINT32的区别在哪里? (转)

 
阅读更多
转  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之间的装换效率问题..Int。int.Prase.ToInt之间的装换效率问题

    c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别详解

    主要介绍了c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别,需要的朋友可以参考下

    stdint.h头文件

    很多项目经常使用的两个头文件inttypes.h stdint.h,否则会报错。网上很多资料,但基本上不可用。这两个文件,我在自己的项目中运行良好。

    全部stdint.h1

    一、stdint.h是什么 stdint.h是C99标准引进的定义整形类型的C标准库头文件二、干什么stdint.h中定义了一些整数类型,规则如下

    stdint.h和inttypes.h头文件

    可以用来解决VC不包含stdint.h头文件问题,网上下载的很多工程项目经常使用的两个头文件inttypes.h stdint.h,将头文件放到(以VS2008为例):C:\Program Files\Microsoft Visual Studio 9.0\VC\include(装在C盘时...

    STM32 头文件stdint.h简略翻译

    STM32 头文件stdint.h简略翻译

    stdint.h文件

    包涵stdint.h inttypes.h这两个文件,很多的开源项目用到了这两个文件

    无法打开包括文件:“stdint.h”

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。 解决办法:下载文件之后将文件移动到...

    C#(int)中Convert、Parse、TryParse的区别

    Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:Convert.ToInt32 参数为 null 时,返回 0;int.Parse 参数为 null 时,抛出异常。Convert.ToInt32 参数为 “” 时,抛出异常...

    stdint.h、inttypes.h.rar

    使用VS编译代码时报错,“显示无法打开stdint.h:No such file or directory”。原因是缺少了stdint.h、inttypes.h。stdint.h、inttypes.h是C99的2个标准库。

    VS2005编译 提示无法打开包括头文件“stdint.h“

    由于代码中使用了头文件<stdint.h> 但是VS2005缺少头文件stdint.h,所以在"VS2005安装路径/VC/include"(例:C:\softwore\VS2005\VC\include)路径下添加stdint.h文件即可。

    inttypes.h+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兼容C语言头文件

    stdint.h和inttypes.h下载

    stdint.h和inttypes.h下载,有需要的亲可以下载使用。

    SDK-include-stdint.h,inttypes.h.zip

    ffmpeg-full-SDK3.2解码的问题,需要stdint.h与inttypes.h头文件库文件下载。

    vs2008的stdint.h

    vs2008编译提示Cannot open include file: 'stdint.h': No such file or directory,是因为vs2008没有这个文件,下载完放到你vs2008安装目录下的include就行了,我本地默认目录是C:\Program Files (x86)\Microsoft ...

    C#中Convert.ToInt32()和int.Parse()的区别介绍

    Convert.ToInt32()方法可以将多种类型的数据转换成int类型,并且转换null时返回0,转换bool量时返回0或1,但是转换空字符串(””)时会报错, int.Parse()只能将数字型的字符串转换成int类型;转换null时会报错。 ...

    stdint.h和inttypes.h

    VC运行时报错说找不到“stdint.h”,所以将上面两个文件拷贝到头文件库中再运行即可,我的是C:\Program Files (x86)\Microsoft Visual Studio\VC98\Include下

    stdint.h stdint.h

    stdint.h 比如vs2008放置目录C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include

Global site tag (gtag.js) - Google Analytics