首页 > 编程语言 >C# —— 显示转换

C# —— 显示转换

时间:2024-06-11 20:58:18浏览次数:13  
标签:显示 Console str C# float Convert Parse WriteLine 转换

显示转换: 通过一些方法可以将其他数据类型转换为我们想要的数据类型

1.括号强转

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

sbyte sb = 1;
short s = 1;
int i = 10;
long l = -1;

强转时 可能会出现范围问题 需要注意

 s = (short)i;
 sb = (sbyte)l;
 Console.WriteLine(s);
 Console.WriteLine(sb);

无符号

byte b = 5;
ushort us = 6;
uint ui = 10;
ulong ul = 10;

b = (byte)ul;
Console.WriteLine(b);

不同类型 无符号和有符号强转
            // 注意 强转时一定要注意范围 不然得到的结果会异常

 b = (byte)l;
 Console.WriteLine(b);
 // 浮点数
 decimal dl = 0.6m;
 double d = 2.8;
 float f = 0.5f;

 // 浮点数之间强转 : 同整数之间相同
 dl = (decimal)d;
 Console.WriteLine(dl);

 // 整形和浮点数进行转换
 // 浮点数强转为整形时 会直接省略掉小数点后面的小数
 i = (int)dl;
 Console.WriteLine("这是强转decimal:" + i);
 i = (int)d;
 Console.WriteLine("这是强转double:" + i);
 i = (int)f;
 Console.WriteLine("这是强转float:" + i);

 字符类型 : 可以将数字强转为char类型(有这个ASCII码)

int A = 'a';
Console.WriteLine(A); 
char c = (char)A;
Console.WriteLine(c); 
// 布尔类型 : 无法进行强转
bool t = true;
// t = (float)t;
// Console.WriteLine(t);
// string 类型 : 无法进行强转
string str = "123";
// str = (int)str;
// 布尔类型和string类型 是无法进行强转的

2.Parse法

作用: 将字符串类型转换为对应的类型
            // 语法: 变量类型.parse(字符串);
            // 注意: 字符串必须能够转换为相应类型 否则报错

string str2 = "1254536";
i = int.Parse(str2);
Console.WriteLine(i);

我们转换字符串 必须是要能够转成对应类型的字符 否则会报错
            // 转换时 其实也遵循隐式转换原则 大范围装小范围
            // i = int.Parse("123.45");

 string str3 = "123.45";
 float f2 = float.Parse(str3);
 Console.WriteLine(f2);
 string str7 = "123";
 float f3 = float.Parse(str7);
 Console.WriteLine("直接使用float去转换整数字符串"+ f3);

string str4 = "15645666";
// byte b4 = byte.Parse(str4);
// Console.WriteLine(b4);
string str5 = "1";
// 有符号
long l5 = long.Parse(str5);
int i5 = int.Parse(str5);
short s5 = short.Parse(str5);
sbyte sb5 = sbyte.Parse(str5);
// 无符号
ulong ul5 = ulong.Parse(str5);
uint ui5 = uint.Parse(str5);
ushort us5 = ushort.Parse(str5);
byte b5 = byte.Parse(str5);
// 浮点数
string str6 = "123.5";
float f5 = float.Parse(str6);
double d5 = double.Parse(str6);
decimal dl5 = decimal.Parse(str6);

// 布尔值
bool bl5 = bool.Parse("true");
bool bl6 = bool.Parse("false");
Console.WriteLine(bl5);
Console.WriteLine(bl6);
// 字符
char c6 = char.Parse("A");
Console.WriteLine(c6);

3.Convert法 

作用: 更加准确的将各个类型之间进行相互转换
            // 用法: Convert.To目标类型(变量或常量)
            // 注意: 需要转换的变量或者常量必须正确 否则会报错

每一个类型都存在一个对应的convert.to方法
           

// 有符号
long lg = Convert.ToInt64(str_one);
int it = Convert.ToInt32(str_one);
short st = Convert.ToInt16(str_one);
sbyte sbt = Convert.ToSByte(str_one);

// 无符号
ulong ulg = Convert.ToUInt64(str_one);
uint uit = Convert.ToUInt32(str_one);
ushort ust = Convert.ToUInt16(str_one);
byte bt = Convert.ToByte(str_one);
// 浮点数
float ft = Convert.ToSingle(str_one);
double db = Convert.ToDouble(str_one);
decimal dc = Convert.ToDecimal(str_one);
Console.WriteLine(lg);
Console.WriteLine(ft);
Console.WriteLine(db);
Console.WriteLine(dc);
Console.WriteLine("************************************");

convert 方法  精度更加准确
            // 精度比括号强转会更好一点 会进行四舍五入

int num_two = Convert.ToInt32(1.2456f); // 1
Console.WriteLine(num_two);
num_two = Convert.ToInt32(1.5456f); // 2
Console.WriteLine(num_two);
 Console.WriteLine("************************************");

如果把字符串转换为对应类型 那么字符串一定要符合类型  否则会报错
            // convert.to 去转换数据类型时  也遵循隐式转换原则 大范围装小范围
            // num_two = Convert.ToInt32("1.5456"); // 报错
            // Console.WriteLine(num_two);

 float float_two = Convert.ToSingle("1.5456");
 Console.WriteLine(float_two);
 float float_three = Convert.ToSingle("5");
 Console.WriteLine(float_three);

特殊类型转换

// bool类型也可以转换为整形 true 为 1 false 为 0
bool bl1 = true;
bool bl2 = false;
num_two = Convert.ToInt32(bl1);
Console.WriteLine(num_two); // 1
num_two = Convert.ToInt32(bl2);
Console.WriteLine(num_two); // 0
// 布尔值转字符串
// 数值转换为bool类型
// 除了布尔值字符串 其余字符串转换布尔值会报错
// 除零外 其余数字类型转换为布尔值时为true 0 为false
bool bl3 = Convert.ToBoolean("true");
// bool bl4 = Convert.ToBoolean("123");
bool bl4 = Convert.ToBoolean(-5);
bool bl8 = Convert.ToBoolean(2.5);
Console.WriteLine(bl3);
Console.WriteLine(bl4);
Console.WriteLine(bl8);

Console.WriteLine("**********************************");
// char  类型
char B = 'B';
num_two = Convert.ToInt32(B);
Console.WriteLine(num_two);
// 字符串转 char 类型
B = Convert.ToChar("王");
Console.WriteLine(B);
// 数字转 char类型 是根据对应的ASCII码表进行转换
B = Convert.ToChar(66);
Console.WriteLine(B);

Console.WriteLine("*********string类型**************");
// string 类型
string str_five = Convert.ToString(num_two);
Console.WriteLine(str_five);

4.其他类型转string

 ToString()
            // 作用: 拼接字符
            // 用法: 变量或者常量.ToString();

string str_six = 5.ToString();
Console.WriteLine(str_six);
str_six = true.ToString();
Console.WriteLine(str_six);
str_six = 1.2f.ToString();
Console.WriteLine(str_six);
str_six = 'A'.ToString();
Console.WriteLine(str_six);

字符串拼接时  其实 默认自动调用的ToString方法 装换为string类型

Console.WriteLine("每个人都有" + 10 + "个手指头" + true);

 

标签:显示,Console,str,C#,float,Convert,Parse,WriteLine,转换
From: https://blog.csdn.net/lu2023_8_6/article/details/139608472

相关文章

  • spring-1-IOC、创建bean的方式、创建bean的过程
    1.背景IOC(InversionofControl,控制反转)控制反转是一种设计原则,它将对象的创建和管理责任从应用代码中移交给容器。在Spring中,IOC容器负责管理应用中的所有对象,包括它们的生命周期和相互之间的依赖关系。IOC的主要目的是为了减少代码之间的耦合,使代码更加模块化和可测试。这......
  • [20240601]简单探究free list chunk size的分布.txt
    [20240601]简单探究freelistchunksize的分布.txt--//前几天探究探究freelist,无意中发现12c版本freelistchunksize的发生了变化.单独另外写一篇blog.--//我开始分析以为脚本执行有问题,仔细查看12c版本freelistchunksize分布发生了变化.--//我找了以前的11g下的转储,发......
  • [20240604]简单探究RESERVED FREE LISTS chunk size的分布.txt
    [20240604]简单探究RESERVEDFREELISTSchunksize的分布.txt--//前几天探究探究freelist,无意中发现12c版本freelistchunksize的发生了变化.单独另外写一篇blog.--//我开始分析以为脚本执行有问题,仔细查看12c版本freelistchunksize分布发生了变化.--//我找了以前的11g下......
  • CH03_运算符
    CH03_运算符算术运算符作用:用于处理四则运算示例:#include<iostream>usingnamespacestd;intmain(){ inta=10; intb=3; cout<<a+b<<endl;//13 cout<<a-b<<endl;//7 cout<<a*b<<endl;//30 cout<<......
  • CH05_数组
    CH05_数组概述定义:一组相同类型的数据的集合。描述:1.数组中的每个元素都是相同的数据类型2.数组是由连续的内存位置组成的。3.数组索引是从0开始一维数组语法:1.数据类型数组名[长度];2.数据类型数组名[长度]={值1,值2,值3...};3.数据类型数组名[]={值1,值2,值3...};示......
  • CH04_程序流程结构
    CH04_程序流程结构程序流程结构C/C++支持最基本的三种程序运行结构:顺序结构:程序按顺序执行,不发生挑战选择结构:依据条件是否满足,有选择的执行相应的功能循环结构:依据条件是否满足,循环多次执行某段代码选择结构if语句作用:执行满足条件的语句单行格式if语句:if(条件){语句......
  • CH07_指针
    CH07_指针指针的基本概念作用:可以通过指针间接访问内存描述:内存编号是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址指针变量的定义和使用语法:数据类型*变量名;示例:#include<iostream>usingnamespacestd;intmain(){ inta=10; //定义......
  • CH06_函数
    CH06_函数概述作用:将一段可复用的代码封装起来,减少代码重复。一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。函数的定义函数的定义一般主要有5个步骤:返回值类型函数名参数列表函数体语句返回值语法:返回值类型函数名(参数列表){函数体语句......
  • CH08_结构体
    CH08_结构体基本概念结构体属于用户自定义数据类型,允许用户存储不同的数据类型。定义和使用语法:struct结构体名{结构体成员列表}通过结构体创建变量的方式有三种:struct结构体名变量名struct结构体名变量名=定义结构体时顺便创建变量示例:#include<iostream>usi......
  • 基本数据类型 String,null 和 undefined,运算符,流程控制,JavaScript之数组,数组常用
    Ⅰ基本数据类型String【一】String类型String类型就是字符串类型【二】定义变量【1】常规变量var变量名="变量值";//一般用这种var变量名='变量值';不支持三引号【2】可以先声明不赋值先用varb;再对变量b赋值varb='6';【三】字符串的格式化输出语法......