C#中类型的转换

类型转换

什么是类型转换

类型转换 就是不同变量类型之间的相互转换

类型转换--隐式转换

隐式转换的基本规则--不同类型之间自动转换
大范围装小范围

知识点一 相同大类之间的转换

有符号 long-->int-->short-->sbyte

无符号 ulong-->uint-->ushort-->byte

浮点数 decimal    double-->float

特殊 decimal这个类型 没有办法用隐式转换的形式 去存储 double和float

知识点二  不同大类之间的转换

无符号装有符号
有符号的变量 是不能够 隐式转换 无符号的

有符号装无符号
有符号变量 是可以 装 无符号变量的 前提是 范围一定要是涵盖的 存在隐式转换

浮点数装整数

整形转为浮点数 是存在隐式转换的

浮点数 是可以装载任何类型的 整数的

decimal 不能隐式存储 float和double
但是它可以隐式的存储整形

double-->float-->所有整形(无符号、有符号)
decimal-->所有整形(无符号、有符号)

整数装浮点数 整数不能隐式存储 浮点数 因为 整数 不能存小数

 特殊类型和其他类型之间

bool bool没有办法和其他类型 相互隐式转换

char char 没有办法隐式的存储 其他类型的变量

char类型 可以隐式的转换为 整数和浮点型
                是将char转换为int
                char隐式转换成 数值类型是
                对应的数字 其实是一 ASCII码
                计算机里存储 2进制
                字符 中文 英文 标点符号 在计算机中都是一个数字
                一个字符 对应一个数字 ASCII码是一种对应关系

char c = 'A';

int i = c;

ConSole.WriteLine(i);

string 无法和其他类型进行隐式转换

总结 隐式转换 规则
            高精度(大范围)装 低精度(小范围)
            double-->float-->整数(有符号、无符号)-->char
            decimal-->整数(有符号、无符号)-->char
            string 和bool 不参与隐式转换

类型转换--显示转换

知识点一  括号强转

作用 一般情况下 将高精度的类型强制转换为低精度
            语法: 变量类型 变量名 = (变量类型)变量
            注意: 精度问题 范围问题

括号强转 可能会出现范围问题 造成的异常

short s = 1;

int i = 2 ;

s = (short) i ;

在强转时 一定要注意范围 不然得到的结果 可能异常

浮点和整形 浮点数强转成整形时 会直接抛弃小数点后面的小数

char和数值类型
            int i2 = 'A';
            char c = (char)i2;
            Console.WriteLine(c);

bool和string 是不能够通过 括号强转的

知识点二  Parse法

作用 把字符串类型转换为对应的类型
语法:变量类型.Parse("字符串")
注意:字符串必须能够转换成对应类型 否则报错

有符号

int i4 = int.Parse("123");
Console.WriteLine(i4);

Console.WriteLine(sbyte.Parse("1"));
Console.WriteLine(long.Parse("123456"));

值的范围 必须是能够被变量存储的值 否则报错

无符号


            Console.WriteLine(byte.Parse("1"));
            Console.WriteLine(ushort.Parse("12"));
            Console.WriteLine(uint.Parse("123"));
            Console.WriteLine(ulong.Parse("1233445"));

浮点数


            float f3 = float.Parse("1.3");
            double d3 = double.Parse("1.222");

特殊类型


            bool b5 = bool.Parse("true");
            Console.WriteLine(b5);
            char c2 = char.Parse("4");
            Console.WriteLine(c2);

知识点三  Convert 法

作用 更准确的将 各类型之间进行相互转换
语法:Convert.To目标类型(变量或常量)
注意:填写的变量或常量必须正确 否则出错

转字符串 如果是把字符串转对应类型 那字符串一定要合法合规
 int a = Convert.ToInt32("12");
 Console.WriteLine(a);
精度比括号强转好一点 会四舍五入
 a = Convert.ToInt32(1.678f);
 Console.WriteLine(a);

把bool类型也可以转成 数值类型 true对应1 false对应0
            a = Convert.ToInt32(true);
            Console.WriteLine(a);
            a = Convert.ToInt32(false);
            Console.WriteLine(a);

 每一个类型都存在对应的 Convert中的方法
            sbyte sb5 = Convert.ToSByte("1");
            short s5 = Convert.ToInt16(1);
            int i5 = Convert.ToInt32("123");
            long l5 = Convert.ToInt64("1234");

            byte sb6 = Convert.ToByte("1");
            ushort s6 = Convert.ToUInt16(1);
            uint i6 = Convert.ToUInt32("123");
            ulong l6 = Convert.ToUInt64("1234");

            float f5 = Convert.ToSingle("134.3");
            double d5 = Convert.ToDouble("12.334");
            decimal de5 = Convert.ToDecimal("12.3456");

            bool bo5 = Convert.ToBoolean("true");
            char ch5 = Convert.ToChar('A');

            string str5 = Convert.ToString(1234);

知识点四  其他类型转string

            作用:拼接打印
            语法:变量.ToString();

            string str6 = 1.ToString();
            str6 = true.ToString();
            str6 = 'A'.ToString();
            str6 = 1.2f.ToString();

            int aa = 1;
            str6 = aa.ToString();

当我们进行字符串拼接时 就自动会调用 tostring 转成string
            Console.WriteLine("1234" + 1 + true);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习周报第28周

目录 摘要Abstract一、文献阅读1.题目:2.摘要3.问题描述4.过去方案5.论文方案6.论文模型7.相关代码 摘要 本周阅读了一篇混沌时间序列预测的论文,论文模型主要使用的是时间卷积网络(Temporal Convolutional Network,TCN&#xff…

【ARM 嵌入式 编译系列 3.4 -- 查看所依赖库文件的路径 详细介绍】

文章目录 问题背景库文件路径查看库文件路径信息打印显示连接标准库不使用标准库 libgcc.a问题背景 在自己构建的 Makefle系统中对 cortex-m33 代码编译时,在链接阶段总是报出下面问题 ... arm-none-eabi-ld: cannot find libgcc.a: No such file or directory arm-none-eab…

c++关键字static

1. 静态成员变量和函数并不依赖于类的任何对象,它们是类的属性,因此不需要通过类的对象访问,可以通过类名直接访问。 2. 静态成员变量和函数是公有的,可被所有对象访问,但是无法访问类的非静态成员。 3. 静态成员变量…

2624. 蜗牛排序

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 请你编写一段代码为所有数组实现 snail(rowsCount,colsCount) 方法,…

5.Pytorch模型单机多GPU训练原理与实现

文章目录 Pytorch的单机多GPU训练1)多GPU训练介绍2)pytorch中使用单机多GPU训练DistributedDataParallel(DDP)相关变量及含义a)初始化b)数据准备c)模型准备d)清理e)运行 3)使用DistributedDataParallel训练模型的一个简单实例 欢迎访问个人网络日志🌹🌹知…

数学建模day15-时间序列分析

时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来,本讲将主要介绍时间序列分析中常用的三种模型:季节分解、指数平滑方法和AR…

【Java-随笔】常用依赖

Jsoup https://mvnrepository.com/artifact/org.jsoup/jsoup <!-- "Jsoup"依赖项 --> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3</version> </dependency>H…

Mysql运算符

文章目录 比较运算符< > !IS NULL \ IS NOT NULL \ ISNULLLEAST() \ GREATEST() 查询数据大小&#xff08;字典序&#xff09;BETWEEN...AND...IN (SET) \ NOT IN (SET)LIKE 模糊查询REGEXP \ RLIKE 逻辑运算符逻辑运算符&#xff1a; OR &#xff08;||&#xff09;、A…

二分算法有关题目与解析

二分算法最重要的就是边界问题&#xff0c;边界一定要确定好&#xff0c;并且自己也要清晰&#xff0c;要不然就会混乱。 什么时候用到二分呢&#xff1f;当涉及到快速筛选有序序列的时候就应该想到&#xff0c;其实二分也经常跟排序算法结合着一起使用 关键模板 一个是确立…

SQL安全:常见手段

前面我们从基础的单表查询一直聊到优化&#xff0c;讲了SQL的很多内容。这一节我们来说说怎么让我们的数据库变得更安全。 为了实现常见的业务场景&#xff0c;数据库会提供很多的功能。有一些功能如果被攻击者利用&#xff0c;就很容易获取到不应该让其获取到的信息。比如uni…

演示kotlin的structured concurrency简化并发异步操作

文章目录 准备http客户端同步调用异步调用structured concurrency用例与机制浅析补充说明 用springboot的 kotlin demo&#xff0c;帮助理解structured concurrency简化异步并发调用的机制 准备http客户端 使用同时支持同步和异步调用的java.net.http.HttpClient Configurat…

vue笔记之$listeners

含义 将事件从父组件传递到子组件 作用 可以实现孙组件的数据传递到爷组件中去 示例 爷组件 <template><div id"app">我是爷组件<h3>{{ fromSunData }}</h3><fu fromSun"fromSun"></fu></div> </templ…

python期末考试:python的基本使用

1. 以下关于Python语言技术特点的描述中&#xff0c;错误的是&#xff08; &#xff09;。 A. 对于需要更高执行速度的功能&#xff0c;例如数值计算和动画&#xff0c;Python语言可以调用C语言编写的底层代码 B. Python比大部分编程语言具有更高的软件开发产量和简洁性 C. …

WEB服务器-Tomcat

3. WEB服务器-Tomcat 3.1 简介 3.1.1 服务器概述 服务器硬件 指的也是计算机&#xff0c;只不过服务器要比我们日常使用的计算机大很多。 服务器&#xff0c;也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求&#xff0c;并进行处理&#xff0c;因此一般来说…

【AI】人工智能和水下机器视觉

目录 一、初识水下机器视觉 ——不同点 ——难点 二、AI如何助力水下机器视觉 三、应用场景 四、关键技术 水下机器视觉&#xff0c;非常复杂&#xff0c;今天来简单讨论一下。因为目标识别更难。 水下机器视觉是机器视觉技术在水下环境中的应用&#xff0c;它与普通机器…

基于Springboot的网上点餐系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的网上点餐系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&am…

【2024】OAK智能深度相机校准教程

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是Ash…

ThinkPHP6 自定义Excel导出

一、说明 1.需要安装Spreadsheet&#xff0c;如未安装自行composer安装即可 2.定义导出表格的表头&#xff08;及键值&#xff09; 3.数据内容需要与定义的表头一致 二、核心代码 try {// 获取表格数据$list (new Activity())->select()->toArray();if (!empty($l…

机器人跟踪性能量化指标

衡量机械臂关节轨迹跟踪控制的性能可以通过以下几个方面来进行&#xff1a; 跟踪精度&#xff1a;这是衡量机械臂关节轨迹跟踪控制性能的最重要的指标。它反映了机械臂实际运动轨迹与期望运动轨迹之间的偏差。跟踪精度越高&#xff0c;说明机械臂的控制性能越好。运动范围&…

抖音小店怎么选品?分享如何培养选爆品的思维,每个人都要学会

选品定店铺生死。 一个店铺能不能出单&#xff0c;能不能赚钱&#xff0c;店铺的商品占主要部分&#xff0c;商品才是电商店铺最核心的内容&#xff0c;一个货真价实&#xff0c;物美价廉的产品才是店铺的核心竞争力&#xff0c;运营和找达人都是让产品卖的更多&#xff0c;更…