【C#】类型转换-显式转换:括号强转、Parse法、Convert法、其他类型转string

目录

一、括号强转

1.有符号整型

2.无符号整型

3.浮点之间

4.无符号和有符号

5.浮点和整型

6.char和数值类型 

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

二、Parse法

1.有符号

2.无符号

3.浮点型

4.特殊类型

三、Convert法

1.转字符串

 2.转浮点型

3.特殊类型转换

4.每一个类型都存在对应的 Convert中的方法

四、其他类型转string

1.所有其他类型的数据

2.当我们进行字符串拼接时,就自动会调用 tostring 转成string


一、括号强转

 主要用于数值之间,低精度转高精度,如byte转为int。

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

1.有符号整型

 short sb = 1;
 short s = 1;
 int i = 1;
 long l = 1;

 s = (short)i;
 Console.WriteLine(s);

 i = (int)1;
 sb = (sbyte)s;
 sb = (sbyte)i;
 sb = (sbyte)l;

2.无符号整型

byte b = 1;
uint ui = 1;
b = (byte)ui;

3.浮点之间

float f = 1.1f;
double d = 1.1234567890123456789f;

f = (float)d;
 Console.WriteLine(f);

4.无符号和有符号

 uint ui2 = 1;
 int i2 = 1;
 //在强转时 一定要注意范围 不然得到的结构 可能有异常
 ui2 = (uint)i2;
 Console.WriteLine(ui2);
 i2 = (int)ui2;

5.浮点和整型

//浮点数强转成整型时 会直接抛弃掉小数点后面的小数
i2 = (int)1.24f;
Console.WriteLine(i2);

6.char和数值类型 

i2 = 'A';
char c = (char)i2;
Console.WriteLine(c);

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

//bool bo = true;
//int i3 = (bool)bo;

//string str="123";
//i3=(int)str;

:所有和数值有关的都支持低精度的去存储高精度的(用括号强转的方式)

二、Parse法

主要用来把字符串转为数值。

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

1.有符号

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

//我们填写字符串 必须是要能够转换成对应类型的字符串,如果不合规范,报错
//i4 = int.Parse("123.45");//
//值得范围 必须是能够倍变量存储的值 否则报错
//short s3 = short.Parse("40000");
//console.writeLine(s3);

2.无符号

//无符号
Console.WriteLine(byte.Parse("1"));
Console.WriteLine(ushort.Parse("1"));
Console.WriteLine(ulong.Parse("1"));
Console.WriteLine(uint.Parse("1"));

3.浮点型

 //浮点型
 float f3 = float.Parse("1.2323");
 double d3 = double.Parse("1.2323");

4.特殊类型

//bool和char类型转化为string类型
bool b5 = bool.Parse("true");
Console.WriteLine(b5);
char c2 = char.Parse("A");
Console.WriteLine(c2);

:Parse法用来将string字符串类型转换为对应的类型,要注意的是:我们填写的字符串类型必须是合法合规的,不然会报错

三、Convert法

更全面的转换方式,精度更高,可以把各种类型的数据转为各种类型

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

1.转字符串

如果是把字符串转成对应类型 那字符串一定要合法合规

int a = Convert.ToInt32("12");
Console.WriteLine(a);

 2.转浮点型

// 精度比括号强转好一点,会四舍五入
a = Convert.ToInt32(1.65845f);
Console.WriteLine(a);//2

3.特殊类型转换

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

 a = Convert.ToInt32('A');
 Console.WriteLine(a)

4.每一个类型都存在对应的 Convert中的方法

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


byte b6 = Convert.ToByte("1");
ushort us5 = Convert.ToUInt16("1");
uint ui5 = Convert.ToUInt32("1");
ulong ul5 = Convert.ToUInt64("1");

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

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

string str5 = Convert.ToString(123123);

Console.WriteLine(sb5);
Console.WriteLine(i5);
Console.WriteLine(l5);
Console.WriteLine(b6);
Console.WriteLine(us5);
Console.WriteLine(ui5);
Console.WriteLine(ul5);
Console.WriteLine(f5);
Console.WriteLine(d5);
Console.WriteLine(de5);
Console.WriteLine(bo5);
Console.WriteLine(c5);
Console.WriteLine(str5);

四、其他类型转string

可以把所有其他类型的数据通过.string方式转换为string类型

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

1.所有其他类型的数据

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


int aa = 1;
str6 = aa.ToString();
Console.WriteLine(aa);
bool bo6 = true;
str6 = bo6.ToString();
Console.WriteLine(bo6);

2.当我们进行字符串拼接时,就自动会调用 tostring 转成string

Console.WriteLine("123123" + 1 + true);

 str6 = "123123" + 1 + true + 1.23;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言绘制精美图形 | 火山图 | 学习笔记

一边学习,一边总结,一边分享! 教程图形 前言 最近的事情较多,教程更新实在是跟不上,主要原因是自己没有太多时间来学习和整理相关的内容。一般在下半年基本都是非常忙,所有一个人的精力和时间有限&#x…

Rockdb简介

背景 最近在使用flink的过程中,由于要存储的状态很大,所以使用到了rockdb作为flink的后端存储,本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构,它和hbase很像,不过严格的说,基于LS…

【Linux】安全审计-audit

文章目录 一、audit简介二、开启auditd服务三、相关文件四、审计规则五、审计日志查询及分析附录1:auditctl -h附录2:systemcall 类型 参考文章: 1、安全-linux audit审计使用入门 2、audit详细使用配置 3、Linux-有哪些常见的System Call&a…

redis实战篇(2)

优惠卷秒杀 通过本章节,我们可以学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列 3、优惠卷秒杀 3.1 -全局唯一ID 每个店铺都可以发布优惠券: 当用户抢…

卷积神经网络(CNN)鲜花的识别

文章目录 前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)我的环境: 2. 导入数据3. 检查数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、构建CNN网络四、编译五、训练模型六、模型评估 前期工作 1. 设置GP…

IP池大小重要吗?

我们在寻找靠谱的IP代理时也经常遇到一个问题,IP代理池是什么?大小有何影响。今天就来跟大家普及一下,IP代理池大小的是否重要? 一、IP代理池是什么? I\P代理池是一个存储大量代理服务器IP地址的集合。它是一个由多个…

【MMC/SD/SDIO】读写操作

SD 总线是基于命令和数据流,它们由一个开始 Bit 发起,由一个停止 Bit 结束。 Command:命令开始一个操作。命令由 Host 驱动,或者给单卡(寻址命令),或者给所有连接的卡(广播命令&…

【操作系统】虚拟内存浅析

文章目录 虚拟内存的概念虚拟内存的实现请求分页存储管理缺页中断机构地址变换机构页面置换算法页面分配策略调入页面的时机 虚拟内存的概念 所谓的虚拟内存,是具有请求调入和置换功能,从逻辑上对内存容量加以扩充的一种存储器系统。他的组成如下&#…

微软 Gradle 强强联手,Gradle 构建服务器正式开源!

作者:Nick Zhu - Senior Program Manager, Developer Division At Microsoft 排版:Alan Wang Gradle 构建服务器 (Build Server for Gradle) 在九月份,我们宣布 Microsoft 和 Gradle 联手探索了一种基于 Build Server Protocol(B…

【SpringMvc】SpringMvc +MyBatis整理

🎄欢迎来到边境矢梦的csdn博文🎄 🎄本文主要梳理 Java 框架 中 SpringMVC的知识点和值得注意的地方 🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关…

为什么Go是后端开发的未来

近年来,Go 编程语言的流行度迅速增加。Go 最初由 Google 开发,迅速成为后端开发中最受欢迎的语言之一,特别是在分布式系统和微服务的开发中。本文将讨论为什么 Go 是后端开发的未来。 Go 简介 Go,又称为 Golang,是由…

【图数据库实战】HugeGraph架构

一、概述 作为一款通用的图数据库产品,HugeGraph需具备图数据的基本功能,如下图所示。HugeGraph包括三个层次的功能,分别是存储层、计算层和用户接口层。 HugeGraph支持OLTP和OLAP两种图计算类型,其中OLTP实现了Apache TinkerPop3…

如何从Android手机恢复已删除的联系人

联系人应该是最重要的信息之一。 如果您不小心从Android手机中删除了联系人,该怎么办? 如果不容易找回丢失的联系人,您可以使用奇客数据恢复安卓版。 从Android的手机中恢复已删除的联系人 只需删除Android联系人,然后您就可以通…

【Java 进阶篇】揭秘 JQuery 广告显示与隐藏:打造令人惊艳的用户体验

在当今互联网时代,广告已经成为网页中不可忽视的一部分。然而,如何通过巧妙的交互设计,使广告既能吸引用户的眼球,又不会给用户带来干扰,成为了许多前端开发者需要思考的问题之一。在这篇博客中,我们将深入…

Pytorch1.7复现PointNet++点云分割(含Open3D可视化)(文末有一个自己做的书缝识别项目代码)

毕设需要,复现一下PointNet的对象分类、零件分割和场景分割,找点灵感和思路,做个踩坑记录。 下载代码 https://github.com/yanx27/Pointnet_Pointnet2_pytorch   我的运行环境是pytorch1.7cuda11.0。 训练 PointNet代码能实现3D对象分类、…

centos7中安装Nginx和使用Nginx详细操作

环境: 准备了三台centos7虚拟机:192.168.213.4、192.168.213.5、192.168.213.6。 一、安装 三台虚拟机都安装下面的步骤执行,安装Nginx,为后面的使用演示使用。 1、安装必备组件: sudo yum install yum-utils2、配置yum源 在下面的文件目录…

详解自动化测试之 Selenium

目录 1. 什么是自动化 2.自动化测试的分类 3. selenium(web 自动化测试工具) 1)选择 selenium 的原因 2)环境部署 3)什么是驱动? 4. 一个简单的自动化例子 5.selenium 常用方法 5.1 查找页面元素&…

如何合理估算 Java 线程池大小

前 言 Java 中的线程创建会产生显著的成本。创建线程会消耗时间,增加请求处理的延迟,并且涉及 JVM 和操作系统的大量工作。为了减轻这些开销,线程池发挥了作用。 在本文中,我们将深入研究确定理想线程池大小的艺术。经过微调的线…

【C++】模版-初阶

目录 泛型编程--模版 函数模版 类模版 泛型编程--模版 函数模版 如何实现一个通用的交换函数呢?void Swap(int& left, int& right){int temp left;left right;right temp;}void Swap(double& left, double& right){double temp left;left right;righ…

基于ssm+vue交通事故档案系统

摘要 摘要是对文章、论文或其他文本的主要观点、结论和关键信息的简洁概括。由于你没有提供具体的文章或主题,我将为你创建一个通用的摘要。 本文介绍了一种基于SSM(Spring Spring MVC MyBatis)和Vue.js的交通事故档案管理系统的设计与实现…