服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#中数据类型的转换介绍

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

2022-12-15 11:31摸鱼小能手丫 C#

大家好,本篇文章主要讲的是C#中数据类型的转换介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

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

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;

这里的第三行报错,

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

 这里我们要仔细阅读错误,无法将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;

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

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

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

 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了。

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

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

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

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

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

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

 

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

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

原文链接:https://blog.csdn.net/m0_58739847/article/details/122284167

延伸 · 阅读

精彩推荐
  • C#C#在Excel表格中插入、编辑和删除批注

    C#在Excel表格中插入、编辑和删除批注

    这篇文章主要为大家详细介绍了C#如何在Excel表格中插入、编辑和删除批注,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    E-iceblue6182022-02-24
  • C#C#实现时间戳与标准时间的互转

    C#实现时间戳与标准时间的互转

    本文主要介绍了C#中时间戳与标准时间互转的方法,其中需要注意的是基准时间的问题。文中的示例代码具有一定的学习价值,快来跟随小编一起了解一下...

    宁静致远~3582022-12-14
  • C#WPF自动隐藏的消息框的实例代码

    WPF自动隐藏的消息框的实例代码

    本文给大家介绍WPF自动隐藏的消息框实例代码,当鼠标放上去将一直显示,移开动画继续,提供normal和error两种边框。非常不错,具有参考借鉴价值,感兴...

    逆天の萌娃4572021-12-01
  • C#WPF PasswordBox进行数据绑定方法

    WPF PasswordBox进行数据绑定方法

    有的时候会遇见PasswordBox的Password属性不是依赖属性,因此无法进行数据绑定。本文介绍如何通过添加附加属性解决该问题,有此问题的同学可以参考下本文...

    louzi7892022-11-23
  • C#C#泛型的使用及示例详解

    C#泛型的使用及示例详解

    这篇文章主要介绍了C#泛型的使用及示例,本文通过例子个大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    .NET开发菜鸟8922022-11-29
  • C#Unity打开淘宝app并跳转到商品页面功能的实现方法

    Unity打开淘宝app并跳转到商品页面功能的实现方法

    这篇文章主要给大家介绍了关于如何利用Unity打开淘宝app并跳转到商品页面功能的相关资料,这个功能目前在网上找不到相关的解决方法,所以自己写了出来...

    鱼蛋-Felix6822022-11-24
  • C#详解c# 多态

    详解c# 多态

    这篇文章主要介绍了c# 多态的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    菜鸟教程9532022-09-27
  • C#C#中数据的传递以及ToolStripProgressBar

    C#中数据的传递以及ToolStripProgressBar

    本文主要介绍了C#的数据传递方法以及ToolStripProgressBar进度条的使用。希望对大家有所帮助,话不多说,请看下面代码...

    可达鸭要进化7932021-12-10