首页 > 编程语言 >C# 数据类型转换(Casting)

C# 数据类型转换(Casting)

时间:2023-03-07 12:33:06浏览次数:42  
标签:类型转换 Casting C# double char int str Console

C# 数据类型转换(Casting)

C# 中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。C# 中的类型转换在C# 编码中具有重要的作用。本文主要介绍一下C# 数据类型转换(Casting)。

 

1、C# 类型转换

类型转换是将一种数据类型的值分配给另一种类型时的类型转换。

在C#中,有两种类型的转换:

 

  • 自动转换(自动)-将较小的类型转换为较大的类型

 

byte -> short -> char -> int -> long -> float -> double

 

  • 强制转换(手动)-将较大的类型转换为较小的类型

 

double -> float -> long -> int -> char -> short -> byte

2、自动数据类型转换

将较小数据的类型传给较大数据的类型时,将自动完成转换:

例如:

int myInt = 9;
double myDouble = myInt; // 自动转换: int 转换成 double

Console.WriteLine(myInt);      // 输出 9
Console.WriteLine(myDouble);   // 输出 9.0

3、强制数据类型转换

强制数据类型转换是手动将较大范围数据转换较小数据类型,格式是在需要转型的数据前加上“()”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确。

例如:

double myDouble = 9.78;
int myInt = (int) myDouble; // 手动转换: double 转换成 int

Console.WriteLine(myDouble);   // 输出 9.78
Console.WriteLine(myInt);      // 输出 9
int x;
double y;
x = (int)34.56 + (int)11.2;  // 丢失精度
y = (double)x + (double)10 + 1;  // 提高精度
Console.WriteLine("x=" + x);
Console.WriteLine("y=" + y);

4、各种数据类型的互相转换

 

数据类型

转换为其他类型

转换为字符串

转换为字符串

 byte

 Byte.Parse(str)

 Convert.ToString([byte] bt)

 b.toString()

 int

 int.Parse(str)

 Convert.ToString([int] i)

 i.toString()

 long

 long.Parse(str)

Convert.ToString([long] l)

 l.toString()

 float

 float.Parse(str)

Convert.ToString([float] f)

 f.toString()

 double

 double.Parse(str)

Convert.ToString([double] d)

 d.toString()

 char

 str.ToCharArray()

Convert.ToString([char] c)

 c.toString()

 bool

 Boolean.Parse(str)

Convert.ToString([boolean] b)

 bl.toString()

 

StringBuilder转化为string

    string str = "abcdefghijklmnopqrs";
    StringBuilder stb = new StringBuilder(str);

整型数组转化为字符串

    StringBuilder s = new StringBuilder();
    for(i=1;i<=n;i++) {
        s.Append(a[i].ToString());
    }
    string str = ""+s;           

字符串转化为整形数组

    string str="123456";
    int[] a = new int[str.Length];
    for(int i=0;i<str.Length;i++) {
        a[i]  = str[i]-'0';
    }

字符串转化为字符数组

    string str="123456";
    char[] c = str.ToCharArray() ;
    Console.WriteLine(c);

字符数组转化为字符串

char[] c = {'a','s','d','4','5',};
    string str = new string(c);
    Console.WriteLine(str);

字符数组转化为整型数组

char[] c = { '1', '2', '3', '4', '5', };
    int[] a = new int[c.Length];
    for (int i = 0; i < 5; i++) {
        a[i] = c[i] - '0';
        Console.WriteLine(a[i]);
    }

整型数组转化为字符数组

int[] a = {1,2,3,4,5};
    char[] c = new char[a.Length];
    for (int i = 0; i < 5; i++) {
        c[i] = (char) (a[i]+'0');
        Console.WriteLine(c[i]);
    }
 

整型数转化为字符串

int i=11;
string str = i.ToString();
string s = Convert.ToString(i);
 s = "" + i;

字符串转化为整型数

int i = int.Parse(str);

标签:类型转换,Casting,C#,double,char,int,str,Console
From: https://www.cnblogs.com/GaoUpUp/p/17187639.html

相关文章

  • 一张图看懂CodeArts Repo 6大特性,带你玩转代码托管服务
    华为云CodeArtsRepo是华为全栈自研的代码托管服务,基于Git提供分布式代码管理和协同开发能力,包括成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、持续集成等......
  • ckeditor粘贴word文档图片的功能
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java"......
  • 设计模式-javascript实现【状态模式】
    定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其主要原理是将状态封装成独立的类,并将请求委托给当前的状态对象,当对象内部状态变化时,会......
  • docker数据管理
    1.数据卷管理数据卷的作用是将宿主机的某个磁盘目录映射到容器的某个目录,从而实现宿主机与容器之间的数据共享dockerrun(create--name容器名称)-v宿主机目录:容器目录......
  • Pwn2Own Austin 2021 Cisco RV34x RCE 漏洞链复现
    前言这个RCE漏洞利用链的实现是由几个逻辑洞的结合而导致的,这几天我花了一些时间复现了一遍,在此记录一下。固件解压我下载的是RV345v1.0.03.24,从官网下载到压缩包解压......
  • Golang+Gin+ Redis Cluster
    最近用redisshake做redis数据迁移,由于redis提供的客户端没有用于查看集群的工具,且我部署的redis集群是基于k8s来构建的,没有使用ingress做转发,所以只能在k8s内部访问集群,于......
  • JavaScript 其他样式操作的属性
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <styletype="text/css"> #box1{ width:100px; height:100px; back......
  • 【vue开发】vue 项目中 .eslintrc.js 配置示例,有配置说明
    module.exports={root:true,env:{node:true},extends:['plugin:vue/essential','plugin:vue/recommended','eslint:recommended'],parserOpt......
  • RPC
    介绍RPC:RemoteProcedureCall,远程过程调用,在单体springboot项目中,controller调用service接口,userService.login("id","password"),而在微服务的架构中,不同的服务分布在......
  • Windows下CMake 中使用 pkg-config
    #set(PKG_CONFIG_EXECUTABLE"F:/vcpkg/packages/pkgconf_x64-windows/tools/pkgconf/pkgconf.exe")#set(PKG_CONFIG_USE_CMAKE_PREFIX_PATHON)set(PKG_CONFIG_ARGN"......