C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
自己刚学习C#,总结了一些知识,想分享给大家。毕竟刚学习这门语言,学得不深,如果哪里有错误,请帮忙指出一下哈,谢谢!
1、(int)可用于单精度、双精度等其他数值类型的转换(到整型int),不能用于转换string类型,例如:
1)这里用(int)转换string是不可以的,系统会报错,程序是不能运行。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
string myString="520";
int myint;
myint = (int)myString;
Console.WriteLine(myint);
}
}
}
2)下面例子是转换单精度类型float,这是可以的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
int x;
float y=1.2f;
x = (int)y;
Console.WriteLine(x);
Console.ReadKey();
}
}
}
3)使用(int):Double或Float被转换成int类型,小数部分不进行四舍五入,结果是取整的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
//double转换为int,使用Convert.ToInt32()
double myInt=1.6;
string myString = "123.45";
//string myString="abcd";
//string myString = "12345";
int intResult;
string stringResult;
intResult = (int)myInt;
Console.WriteLine(intResult);
Console.Read();
}
}
}
2、Convert.ToInt32() 可以转换字符串类型,但是字符串里的内容必须是"123456"这种,即:里面是整型数值类型的。不能是"123.456"(可认为里面是小数的)或者"abcdef"。也可转换值类型,如Double和Float。
1)字符串为"123.45",系统会报错:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
int myInt;
string myString = "123.45";
//string myString="abcd";
//string myString = "12345";
int intResult;
string stringResult;
intResult = Convert.ToInt32(myString);
Console.WriteLine(intResult);
Console.Read();
}
}
}
2)使用Convert.ToInt32():double或float被转换为int,小数部分可以是四舍五入的。规则是:整数位如果是:0-4:直接舍掉小数位。若数值为5.6,规则是:整数位如果为5,要返回临近偶数()结果是6 整数位为6-9是,都要进位。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
//double转换为int,使用Convert.ToInt32()
double myInt=1.6;
string myString = "123.45";
//string myString="abcd";
//string myString = "12345";
int intResult;
string stringResult;
intResult =Convert.ToInt32(myInt);
Console.WriteLine(intResult);
Console.Read();
}
}
}
//输出结果为2
3、int.Parse()在只能转换string类型,不能是其他,例如double到int这些数值类型是不可以的。另外,在转换string时和Convert.ToInt32() 同,字符串里的内容必须是"123456"这种,即:里面是整型数值类型的。不能是"123.456"(可认为里面是小数的)或者"abcdef"。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
int myInt;
//string myString = "123.45";
//string myString="abcd";
string myString = "12345";
int intResult;
string stringResult;
intResult = int.Parse(myString);
Console.WriteLine(intResult);
Console.Read();
}
}
}
//double-->int不可以
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
//double转换为int,使用Convert.ToInt32()
double myInt=1.6;
string myString = "123.45";
//string myString="abcd";
//string myString = "12345";
int intResult;
string stringResult;
intResult = int.Parse(myInt);
Console.WriteLine(intResult);
Console.Read();
}
}
}
4、Conver.ToInt32()可以将string=null转换为0,而(int)、int.Parse()不能对空字符串进行转换,实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
String myString = null;
String resultString;
int myInt;
// myInt = (int)myString;//不能转换null
myInt = Convert.ToInt32(myString);//将null转换为0
// myInt = int.Parse(myString);//不能转换null
Console.WriteLine(myInt);
Console.Read();
}
}
}
5、int类型转换为string 类型,使用强制类型转换符,可用Convert.ToString()去转换
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
//强制括号转换只能转换数值类型的
int myInt = 3;
string stringResult;
stringResult=(string)myInt;
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
//强制括号转换只能转换数值类型的
int myInt = 333;
string stringResult;
//stringResult = Convert.ToString(myInt);
stringResult = myInt.ToString();
Console.WriteLine(stringResult);
Console.Read();
}
}
}
文章系属个人原创,请尊重原创,转载请注明出处!
文章难免会有错误,还望各位多多海涵,另外希望技术专家们多多指出不足之处,兄弟得以改进!
C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识的更多相关文章
- c++中三种继承方式的区别
public公有继承 protected保护继承 private私有继承 我们知道类的private和protected成员,在类外是不可以使用的.只有public成员可以在类外直接使用. 公有继承时 ...
- EF三种编程方式的区别Database first ,Model first ,code first
首先对于EF中先出现的datebase first和model first两种编程方式,其的区别根据字面意思很容易能够理解. datebase first就是代表数据库优先,那么前提就是先创建数据 ...
- 第十篇----------javascript函数的三种定义方式及区别
javascript定义函数有3种方式: //3种函数定义方式,前两种常用 /** * 1,function 语句式 * 形式:句子 * 名称:有名 * 性质:静态 * 解析时机:优先解析 * 作用域 ...
- Qt中(图片)资源的三种使用方式
Qt中使用图片资源的方法有很多种,以前我一直分不清各种之间的区别和Qt相应的处理机制,后来遇到一些实际的问题,然后再加上查阅源码和资料,总算弄明白一些事情,但是本文仅仅是个人理解,如有错误之处请告诉我 ...
- html5 中的 css样式单 的 两种调用方式的区别
在 html5 中 使用 css 样式单的方式 有4种: 1.链接外部样式文件:将样式文件 彻底与 html 文档分离,样式文件需要额外引入,这种情况下 一批样式 可以控制多份文档.对于好多文件都共有 ...
- HTML5的三种存储方式以及区别
首先将存储方式前要先知道为什么要使用他:一是利用本地数据,介绍网络请求:二是弱网环境下,高延迟,低带宽,要把数据本地化: 1.本地存储localStorage和sessionStorage 介绍: 存 ...
- js 三种存储方式的区别
javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookie 相同点:都保存在浏览器端,同源的 不同点: ①传递方式不同 cookie数据始终 ...
- location的三种连接方式和区别
location.href是一个属性,要这样使用:location.href='http://www.example.com'而location.assign('http://www.example. ...
- Oracle三种链接方式的区别
1 nested loops join--我们用设置statistics_level=all的方式来观察如下表连接语句的执行计划: --T2表被访问100次(驱动表访问1次,被驱动表访问100次)-- ...
随机推荐
- VS2008集成PC-lint
引言 C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应也使得代码编写具有很大的随意性,另外C/C++编译器不进行强制类型检查,也不做任何边界检查,这就增加了代码中 ...
- ssh: Could not resolve hostname git.*****-inc.com : Temporary failure in name resolution fatal: The remote end hung up unexpectedly
问题出现的情景:使用git pull拉取开发的代码到测试服务器,报错: ssh: Could not resolve hostname git.****-inc.com : Temporary fai ...
- php.ini 中文详解
[PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;; ...
- maven的下载安装,配置本地仓库
maven的下载安装 下载地址:http://maven.apache.org/download.cgi 下载完成后解压到某一个目录 配置环境变量 第一个环境变量 MAVEN_HOME A:\mave ...
- 'abc' 转换成[a, b, c]一道面试题的思考
最近面试遇到那样一个问题把'abc' 转换成[a, b, c],就是字符串转成数组. 看着简单,我就是说split,然后面试官问还有吗.我有思考了一下.循环用charAt()取,然后还有Array.f ...
- /dev/null 2>&1 详解
今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...
- 我的2017年终总结(PF项目框架设计心得分享 1.0rc new)
一晃眼又过去了一年,在这一年里尽管有许多不如意的事,却阻挡不了我前进的脚步.先用一句话来总结去年一年的状态,那就是“无休无止的忙碌”.而这样的忙碌状态对我来说是不可取的,因为匮乏的忙碌只能让头脑处于一 ...
- 十年磨一剑 Delphi重新崛起再写传奇
新年伊始,英巴卡迪诺公司(Embarcadero)就在其官网发布了"激动人心的RAD Studio2018年发展规划"公告(见上图).公告中指出,将在于2018年第一季度发布10. ...
- Hibernate Error: a different object with the same identifier value was already associated with the session
在执行Hibernate的Update操作时,报错:a different object with the same identifier value was already associated w ...
- leetcode第一天
leetcode 第一天 2017年12月24日 第一次刷leetcode真的是好慢啊,三道题用了三个小时,而且都是简单题. 数组 1.(674)Longest Continuous Increasi ...