C#中数据类型的转换介绍

目录
  • 1、parse转换:将string类型转化为其他类型
  • 2、任意类型转化为string类型
  • 3、隐式转换:自动转换-->小范围到大范围自动转换
  • 4、显示转换:强制转换-->由大范围到小范围的强制转换,不过可能会发生精度丢失
  • 5、最后再给一个简单的题目考考大家:

今天学习了一下数据类型的转换,我整理出了一下笔记;

1、parse转换:将string类型转化为其他类型

 //数据类型的转换
                //即string"18"==> int 18,
                //1、parse转换:将string类型转化为其他类型
                //待转数据必须要像该数据类型
                string strNumber = "18";
                int num01 = int.Parse(strNumber);
                float num02 = float.Parse(strNumber);

2、任意类型转化为string类型

//2、任意类型转化为string类型
                int number = 18;
                string str = number.ToString();

昨天在做老师的练习的时候,就用到了这两种类型的转换,比如想把char类型转换成为int类型,可以先把它转化为string类型,再把string类型转化为int类型从而实现数据的转换,最稳健的做法,string类是充当了一个类似与“容器”的作用。

3、隐式转换:自动转换-->小范围到大范围自动转换

//3、隐式转换:自动转换-->小范围到大范围自动转换

            byte b3 = 100;
            int i3 = b3;

这个没什么可说,很好理解,可以把b3变量看成一块“地”,存了100,byte是占一个字节,而int占4个字节,如果一个数据放在一个内存小的地方都放得下,那内存大的地方也能放下。

4、显示转换:强制转换-->由大范围到小范围的强制转换,不过可能会发生精度丢失

 //4、显示转换:强制转换-->由大范围到小范围的强制转换,可能会发生精度丢失
            int i4 = 100;
            byte b4 = (byte)i4;

这个强制转换就厉害了,不过语法也很简单,给大家看我输入的几个例子就明白为什么简单了

            byte numbe1 = 1;
            short numbe2 = 2;
            short resu =numbe1 + numbe2;

这里的第三行报错,

这里我们要仔细阅读错误,无法将int类型隐式转换成short,就说明我们这个resu变量应该为int类型,或者用强制转换。(如果把第三行的short换成byte,一样的解决方式)

            byte numbe1 = 1;
            short numbe2 = 2;
            short resu = (short)(numbe1 + numbe2);
            //或int resu =numbe1 + numbe2;
            byte numbe1 = 1;
            byte numbe2 = 2;
            byte resu = (byte)(numbe1 + numbe2);
            //或int resu =numbe1 + numbe2;

在强制转换中出现这种无法隐式转换类型的错误时,看错误提示就行,很简单。

不过我在尝试其他类型的时候,却发现了一个不一样的错误。

float类型和decimal类型竟然不能相加?

查阅资料后发现原来它们两在内存里面存储的结构就不一样,float浮点型是近似存储(包括double),而decimal是精确存储,所以无法相加。(祖师爷告诉我的....)。

不过float与double类型可以相加

            float numbe1 = 1;
            double numbe2 = 2;
            byte resu = (byte)(numbe1 + numbe2);
            //或double resu = numbe1 + numbe2;

可以理解为由多种变量参与运算,结果自动向较大的类型提升。

5、最后再给一个简单的题目考考大家:

代码中的b+=3和b=b+3,这两种写法完全一样的吗?

           int a = 1;
            a = a + 3;
            a += 3;

            byte b = 1;
            b += 3;
            b = b + 3;
答案是不一样的,会报错,因为类型提升为int了。

加一个强制转换,就解决了。

为什么b+=3不报错呢?

+=属于快捷运算符,不做自动类型提升。不过如果初始b值过大,超出范围255,会从头开始,即从0开始,

到此这篇关于C#中数据类型的转换介绍的文章就介绍到这了,更多相关C#数据类型转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#数据类型及其转换详解

    前言 在C#中,数据类型可以分为以下几种类型: 值类型(Value types)引用类型(Reference types)指针类型(Pointer types) 其中指针类型只在不安全代码下使用,一般不涉及所以今天不讨论.我们主要探讨引用类型和值类型. 一.基本定义 值类型的变量在声明后,系统直接在托管栈中为其分配内存并保存其数据,其中值类型包括:byte,short,int,long,float,double,decimal,char,bool 和 struct等,当我们声明一个引用类型时,系

  • 浅析C#数据类型转换的几种形式

    1.Convert.ToInt32(); //转换成32位的整数.2.变量.ToString();/最常见的转换成 字符串.3."订单"+2514 //后面的数字会转换为字符串.4.((类名A)对象名X) //强行将 对象X 转换成 A类 的对象.5.int.Parse(string);把字符串型转换成其他类型.6.还有,如果要转换成的类型为引用类型,还可以用 as teacher tea = teahcer();如 student stu = tea as student; (1)

  • C#基础之数据类型转换

    int x; long y = 123456789101112; x = (int)y; Console.WriteLine(x); 输出结果: 我们知道long类型的取值范围是-9223372036854775805~+9223372036854775807:int类型的是:-2147483648~+2147483647 上面的代码中,由于long变量的值超过了int能容纳的最大值,造成了数据的丢失:像这样有可能造成数据丢失或引发异常的任何转换都需要执行显式转换(explicit); 相反的就

  • c#之用户定义的数据类型转换介绍

    c# 允许用户进行两种定义的数据类型转换,显式和隐式,显式要求在代码中显式的标记转换,其方法是在圆括号中写入目标数据类型. 对于预定义的数据类型,当数据类型转换时可能失败或丢失某些数据,需要显式转换, 1 把int数值转换成short时,因为short可能不够大,不能包含转换的数值. 2 把有符号的数据转换为无符号的数据,如果有符号的变量包含一个负值,会得到不正确的结果. 3 把浮点数转换为整数数据类型时,数字的小数部分会丢失. 此时应在代码中进行显式数据类型,告诉边起义你知道这会有丢失数据的危

  • C#中数据类型的转换介绍

    目录 1.parse转换:将string类型转化为其他类型 2.任意类型转化为string类型 3.隐式转换:自动转换-->小范围到大范围自动转换 4.显示转换:强制转换-->由大范围到小范围的强制转换,不过可能会发生精度丢失 5.最后再给一个简单的题目考考大家: 今天学习了一下数据类型的转换,我整理出了一下笔记: 1.parse转换:将string类型转化为其他类型 //数据类型的转换 //即string"18"==> int 18, //1.parse转换:将st

  • 浅谈Python3中datetime不同时区转换介绍与踩坑

    最近的项目需要根据用户所属时区制定一些特定策略,学习.应用了若干python3的时区转换相关知识,这里整理一部分记录下来. 下面涉及的几个概念及知识点: GMT时间:Greenwich Mean Time, 格林尼治平均时间 UTC时间:Universal Time Coordinated 世界协调时,可以认为是更精准的GMT时间,但两者误差极小,在1s以内,一般可视为等同 LMT:Local Mean Time, 当地标准时间 Python中的北京时间:Python的标准timezone中信息

  • 详解JavaScript的数据类型以及数据类型的转换

    基本数据类型 字符串型数据 在JavaScript中,字符串型数据是用引号括起来的文本字符串. 在JavaScript中不区分"字符"和"字符串",字符也被当做字符串处理.在字符串中可以包括用于特殊目的的字符. <script type="text/javascript"> var hello = "你好"; //双引号 var name = 'fanyoh'; //单引号 alert(hello + name);

  • numpy数据类型dtype转换实现

    这篇文章我们玩玩numpy的数值数据类型转换 导入numpy >>> import numpy as np 一.随便玩玩 生成一个浮点数组 >>> a = np.random.random(4) 看看信息 >>> a array([ 0.0945377 , 0.52199916, 0.62490646, 0.21260126]) >>> a.dtype dtype('float64') >>> a.shape (4,

  • JS中数据类型的正确判断方法实例

    目录 前言 typeof是否能正确判断类型? instanceof是否能正确判断类型? Object.prototype.toString.call() constructor Array.isArray() 正则判断 总结 前言 Javascript是一门动态类型的语言,一个变量从声明到最后使用,可能经过了很多个函数,而数据类型也会发生改变,那么,对一个变量的数据类型判断就显得尤为重要. typeof是否能正确判断类型? typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数

  • 详解C#数据类型及其转换

    前言 在C#中,数据类型可以分为以下几种类型: 值类型(Value types)引用类型(Reference types)指针类型(Pointer types) 其中指针类型只在不安全代码下使用,一般不涉及所以今天不讨论.我们主要探讨引用类型和值类型. 一.基本定义 值类型的变量在声明后,系统直接在托管栈中为其分配内存并保存其数据,其中值类型包括:byte,short,int,long,float,double,decimal,char,bool 和 struct等,当我们声明一个引用类型时,系

  • Python变量和数据类型和数据类型的转换

    目录 变量 什么是变量? print语句格式 变量的特征 数据类型 type()语句 type()语句的使用方式 1.在print语句中,直接输出类型信息 2.用变量存储type()的结果(返回值) 3.使用type()语句,查看变量中存储的数据类型信息 变量有类型吗? 数据类型转换 为什么要类型转换 常见的转换语句 整数和浮点数互相转换 变量 什么是变量? 变量是在程序运行时,能存储计算结果或能表示值得抽象概念.简单地说,变量就是在程序运行时,记录数据用的 变量定义格式: 变量名称=变量的值

  • Java 基础 byte[]与各种数据类型互相转换的简单示例

    Java 基础 byte[]与各种数据类型互相转换的简单示例 这里对byte[]类型对long,int,double,float,short,cahr,object,string类型相互转换的实例, 在socket开发过程中,通常需要将一些具体的值(这些值可能是各种Java类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看: public class TestCase { /** * short到字节数组的转换. */ public static byte[] shor

  • 深入解析Java中的编码转换以及编码和解码操作

    一.Java编码转换过程  我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的:  (1).程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文件我们称之为源文件.  (2).通过JDK中的javac.exe编译这些源文件形成.class类.  (3).直接运行这些类或者部署在WEB容器中运行,得到输出结果.  这些过程是从宏观上面来

随机推荐