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

这三种方式都是强制把内容转换为整数,但他们之间是有区别的,如下:

一、(int)适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型)。

二、int.Parse(string sParameter)是个构造函数,参数类型只支持string类型,Parse就是把String类型转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string类型。

三、Convert.ToInt32()适合将Object类型转换为int型;Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string)。

四、Convert.ToInt32()和int.Parse()对于空值(null)的处理不同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。

五、对于数字的精确度不同:

(1)、Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数,即 4.5 转换为 4,而 5.5 转换为 6。

(2)、int(4.6) = 4,int转化其他数值类型为int时没有四舍五入,强制转换(截取整数部分)。

时间: 2024-11-05 20:47:30

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

C#中,三种强制类型转换的对比

在C#中,我们可以看到三种强制类型转换,比如强制转换成有符号32位整型,可以找到下面三种方式: ① (int)()                ②Convert.ToInt32()         ③int.Parse() 三种转变在有些数据时可以通用,但是用法上仍然有很大的区别 (int)表示使用显式强制转换,是一种类型转换.当我们从 int 类型到 long.float.double 或decimal 类型,可以使用隐式转换,但是当我们从 long 类型到 int  类型转换就需要使用显式

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

1.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2.int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3.Convert.ToInt32()适合将Object类型转换为int型; 4.Convert.ToInt32()和int.Parse()的细微差别: 对于空值(null)的处理不 同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则 会产生异常

C++四种强制类型转换

四种强制类型转换:static_cast    const_cast    dynamic_cast     reinterpret_cast 1.static_cast 编译器隐式执行的任何类型转换都可以由static_cast显示完成. ①用于类层次结构中基类和子类之间指针或引用的转换. 进行上行转换(把子类的指针或引用转换成基类表示)是安全的: 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的. ②用于基本数据类型之间的转换,如把int转换成char,

C++中的向上类型转换和向下类型转换+四种强制类型转换

转自博客:http://blog.csdn.net/wangweitingaabbcc/article/details/7720979# 在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类,和基类向子类的强制类型转换. 向上强制类型转换 切割:覆盖方法和子类数据丢失的现象生成切割(slice) class Base { public: int b; virtual void Test() { cout << "base" <<en

C++中的关键字用法--- 四种强制类型转换的总结

四种强制类型转换的总结(const_cast.static_cast.dynamic_cast.reinterpreter_cast 1. C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a 2. C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用,调用形式如:TYPE B = static_cast(TYPE)(a) const_cast,字面上理解就是去const属性. static_cast,命名上理解是静态类型转换

C++开发必看 四种强制类型转换的总结 [转]

一.C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:     TYPE b = (TYPE)a 二.C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. const_cast,字面上理解就是去const属性. static_cast,命名上理解是静态类型转换.如int转换成char. dynamic_cast,命名上理解是动态类型转换.如子类和父类之间的多态类型转换. reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换. 4种

C++的四种强制类型转换和一个有趣的例子

又是程序员面试宝典,又是被虐的死去活来.这次是dynamic_cast.得,查资料加总结吧 C++有四种强制类型转换,分别是 static_cast, dynamic_cast, reinterpret_cast, const_cast ,这四种转换网上一大堆讲解 比如 Jerry19880126的http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html 和 bamb00的http://www.cnblogs.com

C++ 4种强制类型转换

C++的四种强制类型转换为:static_cast.const_cast.reinterpret_cast和dynamic_cast 类型转换的一般形式:cast-name static_cast 任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast: double slope = static_cast 注: 顶层const:表示指针本身是个常量.如:int *const p: 底层const:表示指针所指的对象是一个常量.如:int const *p: co

C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别

int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即浮点类型全部会返回0 (int)不会进行四舍五入,只取整数部分,小数点部分完全舍弃 using  System;public   class  DoubleToInt{     public   static   void  Main()    {        Test_DoubleToInt(